Try-Catch 메커니즘은 장면 분석을 사용합니다.
2302 단어 catch
1) 비즈니스 논리적 기능 단위로 Try-Catch 메커니즘을 최상위에 추가합니다.왜 그랬을까?이것은 주로 프로그램의 건장성을 증가시켜 이상 투매로 인해 프로그램이 붕괴되는 것을 방지하는 것이다.
try
{
//
//......
}
catch (Exception ex)
{
//
//......
}
2) 오류가 발생할 수 있는 부분에 Try-Catch 메커니즘을 추가하여Catch로 구체적인 이상을 탐지한 후 구체적인 이상에 대해 해당하는 해결 방안을 취한다.
try
{
sent += sendSAEA.AcceptSocket.Send(buffer, sent, size - sent, SocketFlags.None);
}
catch (ObjectDisposedException ex) //Socket
{
break;
}
catch (SocketException ex)
{
//socket ,
Thread.Sleep(this.socketListenerSettings.MSDelayForNextSend);
}
catch (Exception ex)
{
this.SaveLog("Send , :" + ex.Message.ToString());
break;
}
3) 비정상 추적이 필요할 때 Try-Catch 메커니즘을 추가하여Catch 블록에서 사용자 정의 비정상을 제거하고 디버깅할 때 오류 코드 세그먼트를 신속하게 포착할 수 있는 베이스 코드.
try
{
//
//......
}
catch (Exception ex)
{
throw new Exception("xxx , :" + ex.Message.ToString());
}
(2) Try-Catch 메커니즘 주의 사항
1) Try-Catch 메커니즘은 이상을 차단합니다. 이상을 해결할 때 구체적인 이상에 따라 해당하는 해결 방안을 실행할 수도 있고 오류 로그를 기록할 수도 있으며 이상 추적에 사용할 수도 있고 사용자 정의 이상을 직접 던질 수도 있습니다.많은 선택 중에서 하나는 반드시 구체적인 응용 장면에 따라 구체적으로 분석해야 한다는 것을 명심하세요.예를 들어 우리는 ATM기기의 현금 인출 기능을 실현하는 프로그램을 썼다. 첫째, 사용자의 합법성을 검증하고, 둘째, 사용자의 이번 조작의 합법성을 검증하며, 마지막으로 사용자의 조작을 완성한다.위의 세 가지 작업 모두에 Try-Catch 메커니즘을 추가했습니다. 만약에 첫 번째 작업에 이상이 발생하면 로그만 기록하고 이 이상을 차단하면 재난적인 결과를 초래할 수 있습니다.
2) Try-Catch 메커니즘을 남용해서는 안 된다. Try-Catch 메커니즘은 어느 정도에 성능을 손상시키거나 영향을 줄 수 있으므로 다음과 같은 몇 가지 준칙을 권장한다.가능한 한 CLR에 명확한 이상 정보를 주고 Exception을 사용하여 이상을 필터하지 마십시오
2.되도록이면 try... catch를 순환에 쓰지 마세요.
3. try는 가능한 한 적은 코드를 사용합니다. 필요하면 여러 개의catch 블록을 사용하고, 가장 많이 던질 수 있는 이상 유형을 try에서 가장 가까운 위치에 씁니다.
4.Exception 객체 하나만 선언하고 처리하지 마십시오.이렇게 해서 Exception Handing Table의 길이를 괜히 늘렸다.
5.성능 카운터 유틸리티의 CLR Exceptions를 사용하여 예외를 감지하고 적절히 최적화
6.멤버의 Try-Parse 모드를 사용하고 이상이 나오면false로 대체합니다
Try-Catch 메커니즘이 성능에 미치는 영향에 대한 블로그 추천:http://www.cnblogs.com/isline/archive/2010/04/22/1717837.html.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
vueaxios 요청이 성공했지만catch에 들어간 원인 분석문제:axios 200 상태 코드 (즉 요청 성공) 를 되돌려주고catch 안으로 들어갔습니다. 원인: 1. axios 요청이 완료되면 then의 코드 블록, then 코드 블록에 오류 코드 정보가 존재하면catch...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.