[C#] try-catch로 예외 처리하는 법을 알아보자

2024. 7. 23. 18:00C#

728x90
반응형

 안녕하세요. 진득 코딩입니다. 이번 시간에는 예외를 처리하여 특히나 웹사이트 같이 꺼지면 안되는 개발을 할 때 굉장히 중요한 예외 처리하는 법에 대해서 살펴보도록 하겠습니다.

try-catch와 finally 그리고 throw

 try-catch 구문은 복잡해보이지만 의외로 간단합니다. 먼저 try문에 예외가 발생할 만한 코드를 작성합니다. 이때 예외가 발생하면 catch 구문에서 잡아서 해당 구문이 실행됩니다. 위에서는 ex.Message를 사용하도록 하였기 때문에 위 배열의 인덱스가 넘친다는 문구가 나오게 됩니다. finally는 catch 여부를 떠나서 무조건 실행되는 구문입니다.

 throw 구문을 이용하여 try에서 예외가 발생하면 출력될 문구를 의도적으로 정하여서 출력할 수도 있습니다. 위와 같이 exception에 기본으로 들어가 있는 문구 말고 원하는 다른 문구를 사용할 수 있습니다.

예외처리 실습

 예외 처리 실습에서 먼저 1번을 해보도록 하겠습니다. 텍스트 파일을 불러오기 위해서는 File.ReadAllText 메소드를 사용하고 해당 메소드 안에 파일의 주소를 적어주면 됩니다. 이때 맨 앞에 있는 @는 \가 탈출 문자가 아닌 실제 문자임을 나타내는 기호입니다. 위와 같이 코드를 짜주면 굉장히 쉽게 파일을 불러올 수 있습니다.

텍스트 파일 솔루션에 넣기

 위와 같이 텍스트 파일의 속성에 들어가서 출력 디렉터리에 복사 부분에서 항상 복사로 바꿔주고 솔루션 빌드를 하게 되면 해당 텍스트 파일을 해당 솔루션에서 상대 경로로 사용하실 수 있습니다.

텍스트 파일 가져오는 코드 작성하기

 먼저 생성자를 살펴보도록 하겠습니다. 생성자에서는 모든 텍스트 파일에 있는 내용을 받는 content 변수와 이 content에 있는 변수들을 엔터로 나눈 string들을 각각 담아주는 strings를 선언해주었습니다. 그 후 배열을 만드는 getArray() 메서드와 배열에 있는 문자열들을 나누어주는 splitNumString() 메서드를 호출합니다. 해당 메서드들을 살펴보도록 하겠습니다.

 content와 strings를 초기화한 후에 lines 리스트를 만들어줍니다. 그 후에 test.txt에 있는 텍스트 내용을 StreamReader로 읽어와서 sr에 담아줍니다. 그 이후에 lines.Add(content);로 content에 있는 내용을 리스트에 넣어줍니다. 그냥 while문으로만 돌려주면 첫 string은 안들어가서 lines.Add(content);를 한번 해주고 while문을 돌려줍니다. 그 이후 lines를 배열로 바꿔서 strings에 넣어줍니다. 해당 strings는 out을 붙여서 메서드 밖에 있는 strings에 적용됩니다. 

  다음으로 splitNumString 메서드를 살펴보도록 하겠습니다. 매개 변수로 string 배열을 받아서 try-catch를 사용하여 숫자를 파싱하여 숫자로 파싱이 되면 그냥 try에서 처리되고 숫자로 처리가 안된다면 catch문으로 문자가 들어가게 되어서 result에 넣어줍니다. 해당 result를 textBox를 통해서 출력해서 숫자와 문자를 따로 출력하는 코드를 만들었습니다.


 이번 포스팅에서는 try-catch를 이용하여 예외처리하는 것을 살펴보았습니다. 위와 같이 숫자를 파싱하는 것을 응용하여 문자열과 숫자로 나누도록 이용할 수도 있고 홈페이지와 같이 갑자기 예외가 생겼을 때 프로그램이 다운되면 안되는 상황에서 유용하게 사용할 수 있습니다. 이번 포스팅은 여기까지입니다. 끝까지 봐주셔서 감사합니다.😀

728x90
반응형
LIST