2012-06-15 4 views
-1

나는 C# 응용 프로그램을 가지고있다. 나는 널 참조 예외를 계속 얻는다. 나는이 예외를 잡아서 기록 할 수있다. 그러나이 예외가 내 응용 프로그램의 성능에 영향을 미칠지 의심 스럽다. 대신 예외를 피하려고하면이 예외가 지속적으로 해고 당하면 내 응용 프로그램의 성능에 영향을 주는지 알아야합니다. 당신이 NullReferenceException을 받고있는 경우예외가 응용 프로그램의 성능에 영향을 줍니까?

+2

null 예외가 발생하는 경우 코드를 수정해야한다는 의미입니다. –

답변

4

, 당신이 에게 그것을 잡는 그것을보다는 을 수정해야합니다. 수 없습니다 (예 : 깨진 제 3 자 라이브러리) 코드에서 발생하는 경우에만 잡아야합니다. NullReferenceException은 항상 프로그래밍 오류 어딘가에을 나타냅니다.

성능은 "지속적으로"의미하는 바에 달려 있습니다. 예외가 실제로 잘못되었을 때 던져지면 예외가 엄청나게 비쌀 수 있습니다. 제대로 사용하면 문제가 없습니다. 얼마나 많은 초당보고 있습니까? 디버거에서 실행될 때 예외는 종종 디버거가 연결되지 않을 때보 다 훨씬 비쌉니다.

성능에 대해 걱정할 때 테스트는입니다. 따라서 하드 데이터를 사용하여 의사 결정을 내릴 수 있습니다.

0

예외를 처리하는 위치와 발생 빈도에 따라 다릅니다. 예외 및 성능과 관련하여 CodeProject에 대한 좋은 기사가 있습니다. it을 읽어 보시기 바랍니다.

0

예 영향을 미치는 것은 주파수에 따라 다릅니다. 추가 정보에 대한

Link을 참조하시기 바랍니다 그것은 또한 당신에게 도움이 될 수 Link

그들이가 발생하지 않을 때
0

예외가 최소로 공연을 변경 할 수 있도록 설계되었습니다 : try/catch 블록을 추가하는 것은 매우 제한적인 영향을해야 당신의 응용 프로그램 성능. 따라서, 나는 try/catch 블록을 필요한만큼 추가하여 오른쪽 수준의 예외를 잡아내는 것이 좋습니다.

그러나 예외를 던지고 잡는 것은 매우 비쌉니다. 응용 프로그램은 컨텍스트를 전환하고 블록을 사용하여 요소를 처리해야하므로 @Ramhound에 동의하는 이유입니다. 예외를 잡기보다는 예외를 수정해야합니다.

관련 문제