을 실패합니다. 이러한 이유 때문에 SomeSaferMethod
도 catch 문에서 실패 할 경우를 대비하여 SuperSafeMethod
이라는 메서드를 호출했습니다.은 try 캐치 모두 내가 다음과 같습니다 몇 가지 코드를
SomeDangerousMethod
과 SomeSaferMethod
둘 다 실패 할 경우 실행되는 제 3의 실행 수준이되도록 try catch를 어떻게 변경합니까?
감사합니다.
을 실패합니다. 이러한 이유 때문에 SomeSaferMethod
도 catch 문에서 실패 할 경우를 대비하여 SuperSafeMethod
이라는 메서드를 호출했습니다.은 try 캐치 모두 내가 다음과 같습니다 몇 가지 코드를
SomeDangerousMethod
과 SomeSaferMethod
둘 다 실패 할 경우 실행되는 제 3의 실행 수준이되도록 try catch를 어떻게 변경합니까?
감사합니다.
은 아마도 try/catch
사용할 수 있습니다 중첩 : 당신이 할 수있는
try
{
TheString = SomeDangerousMethod();
}
catch
{
try
{
TheString = SomeSaferMethod();
}
catch
{
TheString = SuperSaferMethod();
}
}
return TheString;
아, 나는 네가 둥지를 틀 수 있다는 것을 몰랐다. 답변 해주셔서 감사합니다. – frenchie
중첩을 피하기 위해 다음과 같습니다. 이렇게하면 원하는만큼 많은 메소드를보다 깔끔하게 사용할 수 있습니다.
Func<string>[] methods = { SomeDangerousMethod, SomeSaferMethod, SuperSafeMethod };
foreach(var method in methods)
{
try
{
TheString = method();
break;
}
catch { }
}
if (string.IsNullOrEmpty(TheString))
throw new TooMuchUnsafetyException();
이 메서드가 실패 할 것으로 예상되는 경우이 경우에는 예외를 사용하지 마십시오. 대신에'null'을 반환하십시오. 이전에 'null'이 반환되면 다음 안전한 메소드를 호출하십시오. – Henrik