반응형
예외처리 안한 함수(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
반응형
'C# 기술' 카테고리의 다른 글
LINQ , lambda 사용예제 (0) | 2019.01.28 |
---|---|
Thread 사용 시 Application 완전히 종료하기. (0) | 2019.01.27 |
C# 특정 폴더의 지정된 확장자들의 파일들 가져오기 (0) | 2019.01.25 |
C# substring 문자열 자르기 (0) | 2019.01.22 |
C# File 쓰기 ( File, StreamWrite ) (0) | 2019.01.22 |
댓글