예외를 잡으려면 많은 Try/Catch 블록이 있습니다. 그런 처리 된 예외를 읽고 파일에 기록하고 싶습니다. PostSharp로 처리 된 예외를 읽을 수 있습니까?PostSharp 처리 예외 처리
0
A
답변
2
no. PostSharp는 try/catch 블록에서 메서드를 래핑 한 다음 예외를 다시 throw하는 방식으로 작동합니다. 메서드에서 처리되는 예외는 내부 try/catch가되고 postsharp는 외부 try/catch 블록 만 가질 수 있습니다. 당신은 1) 예외를 제적해야하거나 2) 측면을 사용하여 예외를 처리해야합니다. 어느 쪽도 좋습니다.
0
이 (!)를 처리하는 한 가지 방법은 예외로 전달 된 매개 변수를 기록하는 catch 내에서 호출하는 메서드를 사용하는 것입니다. 예외를 전달하면 로거가 정보를 기록합니다. 사용자 정의 OnMethodBoundaryAspect
의 OnEntry
방법을 사용하여
[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)
}
}
}
, 당신은 방법을 호출하고 예외를 전달하여 예외 정보를 기록 할 수 있습니다. 이 메소드는 실제로 아무 것도 할 필요가 없으며 단지 예외를 감싸고 예외 매개 변수를 기록하는 측면에 대한 더미입니다.
PostSharp에는 코드 삽입 가능성이 있다고 생각했습니다. – Tomas
@ 토마스 당신이 생각하고있는 방식대로는 아닙니다. – ILovePaperTowels
이것은 개인적으로 try catch 블록을 쓰는 것을 피하려고하는 이유입니다. 다행히도 오류 처리를 리팩터링하고 중앙 집중화 할 수 있기를 바랍니다. –