본문 바로가기
C# 기술

c# throw Exception

by bryan.oh 2019. 1. 27.
반응형

예외처리 안한 함수(function)

C# throw exception


아래와 같은 메소드가 있다고 합시다.

1
2
3
4
5
6
7
8
9
10
private void test1()
{
    test2();
 
private void test2()
{
    string s = "asdb";
    int i = Convert.toInt32(s);
}
cs


java 에서는 private void test2() throw exception 같이 코딩을 해야겠지만, C#은 그렇지 않습니다.


결론은, method 는 기본으로 throw exception 합니다.


1
2
3
4
5
6
7
8
9
10
11
12
private void main()  // main 이라 가정하고.
{
    try{
 
        test1();
 
    }catch(Exception ex){
 
        MessageBox.Show(ex.message);     // 여기서 메시지 발생.
 
    }
}
cs


위 처럼. test2() 에서 예외가 발생하더라도 호출한곳까지 올라가서 예외가 throw 됩니다.


그러므로, 각 메소드에서 예외처리를 하지 않았다면 적어도 호출한 곳에서 예외처리를 해야합니다.

가장 좋은 방법은 상황에 따라 각 메소드에서 예외처리를 하는게 좋겠죠. 


위 예제에서 test1() 메소드안에서 test2(), test3(), test4() 를 호출했다고 치고, 각 메소드 안에서 try, catch 를 안했다면

main 메소드에서는 어디에서 오류가 발생했는지 알 수 없습니다.






728x90
반응형

댓글