차례:
정의-캐치 블록이란 무엇입니까?
C #의 catch 블록은 예외가 발생할 때 실행되는 선택적 코드 블록입니다.
캐치 블록은 예외 처리 구문의 특정 부분이며 "try"및 "finally"키워드와 함께 "catch"키워드를 사용하여 구현되며 구조적 예외 처리를 구현하는 수단을 형성합니다. try 블록에는 예외를 일으킬 수있는 보호 코드가 포함됩니다. 여기에는 예외적 인 상황을 다루는 진술이 포함되어 있으며 이러한 예기치 않은 상황에서 회복하기 위해 노력합니다.
캐치 블록은 예외 처리 수단을 형성합니다. 이를 처리하지 않으면 .NET 런타임으로 전체 프로그램이 종료 될 수 있습니다. catch 블록을 사용하여 특정 예외를 처리 할 수 있습니다.
Techopedia는 Catch Block을 설명합니다
CLR (Common Language Runtime)의 예외 처리 모델은 둘 이상의 catch 블록을 허용하며 각 catch 블록은 특정 예외를 처리하도록 설계되었습니다. 예외가 발생할 때마다 CLR은 예외를 처리하는 catch 블록을 찾습니다. 현재 실행중인 메소드에 이러한 블록이 포함되어 있지 않으면 CLR은 현재 메소드를 호출 스택에서 호출 한 메소드에서 해당 블록을 검색합니다. 전체 코드에서 해당 예외에 대해 일치하는 절이 없으면 스레드 실행이 중지되고 처리되지 않은 예외 메시지가 사용자에게 표시됩니다.
다음은 catch 블록 사용과 관련된 몇 가지 팁입니다.
- 예외 유형은 예측할 수없는 특정 예외 (예 : 치명적인 시스템 오류, API 오용 등)가 발생하는 원인을 판별하고 응용 프로그램이 일관성이없는 상태로 두지 않고 복구를 구현 한 후에 만 catch 블록에 지정해야합니다. 잘못된 상태입니다.
- catch 블록은보다 구체적인 예외가 덜 구체적인 예외보다 먼저 포착되도록 배치해야합니다.
- 매개 변수가없는 캐치 블록은 "예외 식사"라고합니다. 이는 디버그하기 어려운 심각한 문제를 억제 할 수 있기 때문입니다.
- 캐치 블록은 중앙 위치에서 예외를 처리 할 수 있도록 중앙 집중화 될 수 있습니다.
- "throw"문은 catch 블록 내에서 사용될 수 있으며, throw에 전달 된 동일한 예외 객체를 다시 throw하는 동안 다시 전달할 수 있습니다.
- try 블록 내에 선언 된 변수는 외부에서 사용할 수 없습니다.
- catch 블록이 실행 된 후 코드는 try 블록으로 다시 시작되지 않습니다.
- catch 블록에서 예외 처리기 코드를 테스트하는 것은 응용 프로그램이 중단되지 않도록하는 데 필수적입니다.
- 정리 코드에는 캐치 블록을 사용해서는 안됩니다.
- 매개 변수가없는 캐치 블록은 비 공용 언어 시스템 호환 예외 (System.Exception에서 파생되지 않은 예외)를 처리하는 데 사용할 수 없습니다.