2020. 11. 27. 18:03ใ์ ๊ณต ๊ณผ๋ชฉ/์๋์ฐ ํ๋ก๊ทธ๋๋ฐ
C# - ๊ณ ๊ธํ๋ก๊ทธ๋๋ฐ (์์ธ)
์ด๋ฒ ์ฅ์์๋ ์์ธ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค.
์์ธ๋ ํ๋ก๊ทธ๋จ ์คํ์๊ฐ์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ์ผ์ปซ๋ ๋ง์ด๋ค.
์ด๋ฌํ ์์ธ์ ๋ํด์ ์ฒด๊ณ์ ์ผ๋ก ๊ฒ์ฌํ๊ณ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํด ์ฃผ๋ ๊ฒ์ด ์ฐ๋ฆฌ ํ๋ก๊ทธ๋๋จธ๋ค์ ์ญํ ์ด๋ค.
์ด๋ฅผ ์์ธ ์ฒ๋ฆฌ๊ธฐ ์์ฑ์ด๋ผ๊ณ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์์ธ๋ Exceptionํด๋์ค์ ํ์ ํด๋์ค์ธ ApplicationException ํด๋์ค๋ฅผ ์์๋ฐ์ ์๋ก์ด ์์ธ ํด๋์ค๋ฅผ ์ ์ํ๋ค.
์๋ ๊ฐ๋จํ ์์ ๋ฅผ ํตํด ํ์ธํด๋ณด์.
public class UserErrException : ApplicationException
{
public UserErrException(string s): base(s) { }
}
public class Program
{
public static void Main(string[] args)
{
try
{
throw new UserErrException("throw a exception with a message");
}catch(UserErrException e)
{
Console.WriteLine(e.Message);
}
}
}
1) ์ฌ์ฉ์ ์ ์ ์์ธ ์์ฑ์๋ฅผ ์ ์ธํ ๋๋ ๋ฐ๋์ ๋ถ๋ชจ ํด๋์ค์์๋ ์์ฑ์๋ฅผ ํธ์ถํด์ค์ผํ๋ค.
2) e.Message๋ฅผ ํตํด ํ๋กํผํฐ์ ์ ๊ทผํด ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
๋ค์์ throw์ ์๋ฏธ๋ฅผ ๊ทน๋ช ํ๊ฒ ์ ์ ์๋ ์์ ์ด๋ค.
using System;
class UserException : ApplicationException { }
class UserExThrowApp
{
static void Method()
{
throw new UserException();
}
public class Program
{
public static void Main(string[] args)
{
try
{
Console.WriteLine("Here : 1");
Method();
Console.WriteLine("Here : 2");
}
catch (UserException)
{
Console.WriteLine("User-defined Exception");
}
}
}
}
์์ธ ์ฒ๋ฆฌ
- ์์ธ ์ฒ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก try-catch-finally ๊ตฌ๋ฌธ์ ํตํด์ ์ฒ๋ฆฌํ๋ค.
try๋ก ๋จผ์ ์คํ์ ํ๊ณ catch๋ก ์์ธ๋ฅผ ์ก์๋ค์, finally๋ก ๋ง๋ฌด๋ฆฌ๋ฅผ ์ง๋ ๊ตฌ์กฐ์ด๋ค.
try-catch-finally ์์ -1
using System;
class UserExceptionOne : ApplicationException { }
class UserExceptionTwo : ApplicationException { }
class ExceptionHandlerApp
{
static void Method(int i)
{
if (i == 1)
{
throw new UserExceptionOne();
}
else
{
throw new UserExceptionTwo();
}
}
public class Program
{
public static void Main(string[] args)
{
try
{
Console.WriteLine("Here : 1");
Method(2);
Console.WriteLine("Here : 2");
}
catch (UserExceptionOne)
{
Console.WriteLine("UserExceptionone");
}
catch (UserExceptionTwo)
{
Console.WriteLine("UserExceptiontwo");
}
finally
{
Console.WriteLine("Here:3");
}
}
}
}
๊ฒฐ๊ณผ ํ๋ฉด
'์ ๊ณต ๊ณผ๋ชฉ > ์๋์ฐ ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ (์ค๋ ๋) (0) | 2020.11.27 |
---|---|
C# ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ - ์ ํธ๋ฆฌ๋ทฐํธ (0) | 2020.11.27 |
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ(์ ๋ค๋ฆญ) (2) | 2020.11.27 |
C# - ํ์ ํด๋์ค์ ์ธํฐํ์ด์ค(2) (0) | 2020.11.19 |
C# - ํ์ ํด๋์ค์ ์ธํฐํ์ด์ค (0) | 2020.11.19 |