CLR 예외가 발생할 때마다 이벤트를 발생시키는 방법이 있습니까?

스티븐 우드

예외가 발생할 때마다 기록하는 응용 프로그램에 오류 로깅을 추가하라는 요청을 받았습니다.

로그를 수행 할 메서드가 있으며 모든 Catch 절에서 이것을 호출 할 수 있습니다.

앱에 말 그대로 수백 개의 try catch 문이 있기 때문에 이것은 어리석은 것처럼 보입니다.

Visual Studio에서는 try catch에 관계없이 모든 예외가 발생한 후에 IDE를 중단하도록 설정할 수 있으므로 이러한 종류의 기능을 사용할 수 있는지 궁금합니다 (발생할 때 코드 중단 점을 지정하지는 않음)

요약하면 내 질문은 다음과 같습니다.

사용자 지정 또는 CLR 예외가 throw 될 때마다이 메서드를 호출하는 이벤트 (또는 이와 유사한)를 발생시키는 방법이 있습니까?

이와 관련된 보너스 질문으로 메소드 진입 / 종료 로깅과 유사하게 수행 할 수 있습니까?

C # .Net 4.5 VS 2012

스콧 체임벌린

Visual Studio가 첫 번째 예외 (try-catch 블록 내부에서도 throw에서 중단)에서 중단되는 방식과 같이 함수를 호출 하려면 실행중인 FirstChanceExecption이벤트 를 구독해야합니다 AppDomain.

AppDomain.CurrentDomain.FirstChanceException += YourLoggingFunction;

AppDomain프로그램의 모든 사람 대해이 작업을 수행해야 하지만 일반적이지 않은 작업을 수행하지 않는 한 모든 프로그램의 99 %는AppDomain

참조 이 MSDN 페이지를 당신이 그들을 사용하는 경우 다른 응용 프로그램 도메인에 가입에 대한 자세한 내용은.

인식하는 것보다 더 많은 예외가 발생할 수 있습니다. 일부 .NET 프레임 워크 코드는 내부적으로 예외를 throw하고 코드를 try-catch 블록에 포함하므로 표면 1에 도달하지 않거나 라이브러리 코드에 패턴이 있는지 확인합니다.

try
{
    SomeFunctionThatThrows()
}
catch (Exception innerException)
{
    throw new SomeMoreDetailedException(message, stateDetails, innerException);
}

이벤트를 구독하면 2SomeFunctionThatThrows() 에서 던진 예외 throw new SomeMoreDetailedException(2 에서 발생한 예외가 모두 표시되기 시작 합니다.


1 : 이것은 네트워크 기반 I / O 호출에서 가장 흔하지 TimeoutExceptiona와 같은 예외 가 일반적이지만 최종 사용자는 사용자에게 알리기 전에 내부 재시도 논리와 같은 일이 발생할 수 있으므로 시간 초과 오류가 발생했음을 알아야합니다.
2 : " 내 코드 만 "을 비활성화 하고 throw 된 모든 예외를 중단하여 Visual Studio에서 볼 수도 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

예외가 발생할 때마다 예외를 포착하는 방법은 무엇입니까?

분류에서Dev

Nullpointer [Umbrella] 싱글 톤에서 GWT SimpleEventBus 이벤트를 시작할 때 예외가 발생했습니다.

분류에서Dev

다른 앱에서 이벤트가 발생할 때마다 작업을 실행할 수 있습니까?

분류에서Dev

마스터 페이지에서이 스크립트를 사용할 때이 예외가 발생합니다.

분류에서Dev

세마포어 또는 입력 이벤트가 발생할 때까지 단일 스레드를 차단하는 방법이 있습니까?

분류에서Dev

이벤트가 발생할 때마다 화면 클라이언트를 업데이트하는 방법 (MVC)?

분류에서Dev

키가 존재하지 않을 때 typescript가 오류를 발생시키는 방법이 있습니까?

분류에서Dev

React.js : Onblur 이벤트는 키를 누를 때마다 발생합니다.

분류에서Dev

사용자가 이메일에 문서를 첨부 할 때 발생하는 Outlook 이벤트가 있습니까?

분류에서Dev

콘솔이 무언가를 기록 할 때 발생하는 이벤트가 있습니까?

분류에서Dev

Timer가 삭제 된 후 System.Timers.Timer의 Elapsed 이벤트를 발생시키는 예제를 생성 할 수 있습니까?

분류에서Dev

커서가 다른 HTML 요소 뒤에 숨겨져있을 때 mouseenter 이벤트를 발생시키는 방법은 무엇입니까?

분류에서Dev

여러 타이머 중 어느 것이 예외를 발생시키는 지 찾는 방법이 있습니까?

분류에서Dev

Java jsp에서 입력시 키 이벤트가 발생할 때 경고 div를 숨기는 방법

분류에서Dev

ComboBox는 모든 키를 누를 때마다 변경 이벤트를 발생시킵니다.

분류에서Dev

예외를 다시 발생시키는 파이썬 생성기

분류에서Dev

jQuery는 이벤트가 발생할 때 무언가를합니다.

분류에서Dev

jQuery는 이벤트가 발생할 때 무언가를합니다.

분류에서Dev

IXmlSerializable.ReadXml () 내부에서 스키마 유효성 검사 오류가 발생할 때 XmlSerializer가 예외를 throw하고 ValidationEvent를 발생시키는 이유는 무엇입니까?

분류에서Dev

Highcharts : 다른 차트에서 클릭 이벤트가 발생할 때 차트를 변경하거나 다시 그리는 방법은 무엇입니까?

분류에서Dev

wpf c #에서 TAB 키를 눌렀을 때 이벤트를 발생시키는 방법은 무엇입니까?

분류에서Dev

동적 ModalPopupExtender가 OK Click 이벤트를 발생시키지 않습니다.

분류에서Dev

Angular JS가 스크롤 이벤트를 발생시키지 않습니다.

분류에서Dev

데이터 세트가 변경 될 때 SqlDependency가 OnChange 이벤트를 발생시키지 않습니다.

분류에서Dev

키 값이 C #의 Dictionary에 추가 될 때 이벤트를 알리고 발생시키는 방법

분류에서Dev

LInkButton이 이벤트를 발생시키지 않습니다.

분류에서Dev

마우스 오버 이벤트가 발생할 때마다 단일 div의 색상을 어떻게 변경할 수 있습니까?

분류에서Dev

이 메서드는 예외가 발생할 때 메모리 누수를 유발합니까?

분류에서Dev

GWT에서 쿠키가 만료되었을 때 이벤트를 발생시키는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    예외가 발생할 때마다 예외를 포착하는 방법은 무엇입니까?

  2. 2

    Nullpointer [Umbrella] 싱글 톤에서 GWT SimpleEventBus 이벤트를 시작할 때 예외가 발생했습니다.

  3. 3

    다른 앱에서 이벤트가 발생할 때마다 작업을 실행할 수 있습니까?

  4. 4

    마스터 페이지에서이 스크립트를 사용할 때이 예외가 발생합니다.

  5. 5

    세마포어 또는 입력 이벤트가 발생할 때까지 단일 스레드를 차단하는 방법이 있습니까?

  6. 6

    이벤트가 발생할 때마다 화면 클라이언트를 업데이트하는 방법 (MVC)?

  7. 7

    키가 존재하지 않을 때 typescript가 오류를 발생시키는 방법이 있습니까?

  8. 8

    React.js : Onblur 이벤트는 키를 누를 때마다 발생합니다.

  9. 9

    사용자가 이메일에 문서를 첨부 할 때 발생하는 Outlook 이벤트가 있습니까?

  10. 10

    콘솔이 무언가를 기록 할 때 발생하는 이벤트가 있습니까?

  11. 11

    Timer가 삭제 된 후 System.Timers.Timer의 Elapsed 이벤트를 발생시키는 예제를 생성 할 수 있습니까?

  12. 12

    커서가 다른 HTML 요소 뒤에 숨겨져있을 때 mouseenter 이벤트를 발생시키는 방법은 무엇입니까?

  13. 13

    여러 타이머 중 어느 것이 예외를 발생시키는 지 찾는 방법이 있습니까?

  14. 14

    Java jsp에서 입력시 키 이벤트가 발생할 때 경고 div를 숨기는 방법

  15. 15

    ComboBox는 모든 키를 누를 때마다 변경 이벤트를 발생시킵니다.

  16. 16

    예외를 다시 발생시키는 파이썬 생성기

  17. 17

    jQuery는 이벤트가 발생할 때 무언가를합니다.

  18. 18

    jQuery는 이벤트가 발생할 때 무언가를합니다.

  19. 19

    IXmlSerializable.ReadXml () 내부에서 스키마 유효성 검사 오류가 발생할 때 XmlSerializer가 예외를 throw하고 ValidationEvent를 발생시키는 이유는 무엇입니까?

  20. 20

    Highcharts : 다른 차트에서 클릭 이벤트가 발생할 때 차트를 변경하거나 다시 그리는 방법은 무엇입니까?

  21. 21

    wpf c #에서 TAB 키를 눌렀을 때 이벤트를 발생시키는 방법은 무엇입니까?

  22. 22

    동적 ModalPopupExtender가 OK Click 이벤트를 발생시키지 않습니다.

  23. 23

    Angular JS가 스크롤 이벤트를 발생시키지 않습니다.

  24. 24

    데이터 세트가 변경 될 때 SqlDependency가 OnChange 이벤트를 발생시키지 않습니다.

  25. 25

    키 값이 C #의 Dictionary에 추가 될 때 이벤트를 알리고 발생시키는 방법

  26. 26

    LInkButton이 이벤트를 발생시키지 않습니다.

  27. 27

    마우스 오버 이벤트가 발생할 때마다 단일 div의 색상을 어떻게 변경할 수 있습니까?

  28. 28

    이 메서드는 예외가 발생할 때 메모리 누수를 유발합니까?

  29. 29

    GWT에서 쿠키가 만료되었을 때 이벤트를 발생시키는 방법은 무엇입니까?

뜨겁다태그

보관