728x90
try~catch로 예외를 처리할 때 예외를 받는데
어디선가 예외를 던진다는 얘기도 됩니다.
예외는 throw 문을 이용해서 던집니다.
try
{
//
throw new Exception("예외를 던집니다.");
}
catch(Exception e) // throw 문을 통해서 던져진 예외 객체는 catch 문으로 받습니다.
{
Console.WriteLine(e.Message);
}
특정 조건을 만족하지 않으면 예외를 던지고 try~catch 문에서 받습니다.
static void DoSomething(int age)
{
if(age<10)
Console.WriteLine("age: {0}", age);
else
// DoSomething() 안에서 예외 처리 코드가 없기 때문에 DoSomething() 호출자에게 던집니다.
throw new Exception("age가 10보다 큽니다.");
}
static void Main()
{
try
{
DoSomething(13); // 던져진 예외가 있다면 catch 블록에서 받습니다.
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
throw 예제
using System;
namespace Throw
{
class Program
{
static void DoSomething(int age)
{
if (age < 10)
Console.WriteLine("age: {0}", age);
else
throw new Exception("age가 10보다 큽니다.");
}
static void Main(string[] args)
{
try
{
DoSomething(1);
DoSomething(3);
DoSomething(5);
DoSomething(9);
DoSomething(11);
DoSomething(13);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
'개발언어 > C#' 카테고리의 다른 글
[C#] Func 대리자 사용방법 (0) | 2023.05.22 |
---|---|
[C#] Hashtable 사용 방법 (0) | 2023.05.19 |
[C#] 전처리기 #if 조건부 지시문(디버그/릴리즈) 사 (0) | 2023.05.18 |
[C#] 전처리기 지시문 종류 (0) | 2023.05.18 |
[C#] virtual 함수 의미 및 활용 (0) | 2023.05.17 |