가장 간단한 방법은 "명령"을 각각의 try/catch 블록으로 래핑하는 것입니다.이 방법은 상당히 일반적인 방법으로 할 수 있습니다. 메시지 루프를 치기 전에 예외를 잡으십시오. 전 그래서 만약 당신이 있었다 :
public void ClickHandler(object sender, EventArgs e)
{
ExecuteCommand("foo");
}
은 당신이 가진 것 :
public void ClickHandler(object sender, EventArgs e)
{
ExecuteInTryCatch(() => ExecuteCommand("foo"));
}
private static void ExecuteInTryCatch(Action action)
{
try
{
action();
}
catch (Exception e)
{
// Log exception
}
}
그것은 모든 예외를 잡는 것은 일반적으로 좋은 생각이 아니다, 그러나, 주목할 가치가있다. 가능한 경우 매우 구체적인 예외를 잡으십시오.
감사합니다.하지만 모든 명령 기능이 UI에 액세스해야하기 때문에 많은 코드 변경이 필요합니다. IIUC 작업은 허용되지 않습니다. – ChrisJJ
@ChrisJJ IIUC가 무엇인지 잘 모르겠다. 왜 작업이 허용되지 않는지 설명 할 수 있습니까? – oleksii
IIUC = 제대로 이해하면. 내 이해 작업에서 컨트롤에서 쓸 수 없습니다. 내가 잘못? – ChrisJJ