2011-09-07 3 views
0

예외를 잡으려면 많은 Try/Catch 블록이 있습니다. 그런 처리 된 예외를 읽고 파일에 기록하고 싶습니다. PostSharp로 처리 된 예외를 읽을 수 있습니까?PostSharp 처리 예외 처리

답변

2

no. PostSharp는 try/catch 블록에서 메서드를 래핑 한 다음 예외를 다시 throw하는 방식으로 작동합니다. 메서드에서 처리되는 예외는 내부 try/catch가되고 postsharp는 외부 try/catch 블록 만 가질 수 있습니다. 당신은 1) 예외를 제적해야하거나 2) 측면을 사용하여 예외를 처리해야합니다. 어느 쪽도 좋습니다.

+0

PostSharp에는 코드 삽입 가능성이 있다고 생각했습니다. – Tomas

+0

@ 토마스 당신이 생각하고있는 방식대로는 아닙니다. – ILovePaperTowels

+0

이것은 개인적으로 try catch 블록을 쓰는 것을 피하려고하는 이유입니다. 다행히도 오류 처리를 리팩터링하고 중앙 집중화 할 수 있기를 바랍니다. –

0

이 (!)를 처리하는 한 가지 방법은 예외로 전달 된 매개 변수를 기록하는 catch 내에서 호출하는 메서드를 사용하는 것입니다. 예외를 전달하면 로거가 정보를 기록합니다. 사용자 정의 OnMethodBoundaryAspectOnEntry 방법을 사용하여

[LogParameters(LogLevel.Error)] 
private static void Error(Exception ex) { } 

public class LogParameters : OnMethodBoundaryAspect { 
    public override void OnEntry(MethodExcutionArgs args) { 
     for (int i=0; i<args.Arguments.Count; i++) { 
      // Get argument from args.Arguments.GetArgument(i) 
     } 
    } 
} 

, 당신은 방법을 호출하고 예외를 전달하여 예외 정보를 기록 할 수 있습니다. 이 메소드는 실제로 아무 것도 할 필요가 없으며 단지 예외를 감싸고 예외 매개 변수를 기록하는 측면에 대한 더미입니다.