C#try catch 예외 캡처 문의 주의사항
1613 단어 C#학습 노트
class Program
{
static void Main(string[] args)
{
try { Fun_1(); }
catch { Console.WriteLine(" ???"); }
Console.ReadKey();
}
static void Fun_1()
{
Fun_2();
}
static void Fun_2()
{
Fun_3();
}
static void Fun_3()
{
Fun_4();
}
static void Fun_4()
{
Fun_5();
}
static void Fun_5()
{
throw new Exception("Fun_5 !");
}
이 코드에서 주 함수 호출Fun1,Fun_1 Fun 호출2Fun 까지 이러한 방식으로 밀어냄5 이상을 던지는데 이 코드에main 함수에만 이상을 포획하는 논리가 적혀 있기 때문에Fun5의 예외가main 함수에서Fun 호출됨1의 장소를 포획하고 처리합니다. 만약에 전체 공정의 코드량이 비교적 많으면 이 이상은 디버깅을 오래 해야 찾을 수 있습니다!
그래서 결론은try catch 문구를 사용하여 이상을 포착하려면 모든 이상을 던질 수 있을 때 이상을 포착해야 BUG를 찾는 시간을 최대한 줄일 수 있다는 것이다!
(2016년 9월 9일 수정:) 오늘 Exception 클래스를 사용하여 오류 정보를 받아들일 수 있음을 발견했다. 예를 들어 상기 코드의 주함수를 이렇게 바꾸었다.
static void Main(string[] args)
{
try { Fun_1(); }
catch (Exception ex){ Console.WriteLine(" ??? " + ex.Message); }
Console.ReadKey();
}
이렇게 하면 정확한 오류 정보를 얻을 수 있어 오류의 위치를 더욱 빨리 찾을 수 있지만 가능한 한 완전한 이상 포획 논리를 해야만 이상이 발생할 때 가장 먼저 이상 코드를 추적할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(대형 파일에 사용 가능) 텍스트 파일을 빠르게 스캔하여 행 수를 집계하고 각 행의 인덱스 위치(Delphi, C#)를 반환합니다.프로젝트에 따라 1200만 줄의 텍스트 파일을 스캔해야 합니다.네티즌의 지적과 테스트를 통해 C#와 델피의 차이가 결코 크지 않다는 것을 발견하였다.긴 설명 없이 열 코드 테스트: 다음은 Delphi 코드입니다. 실...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.