편집 : cyberkiwi는 나보다 질문을 잘 파악, 그러나 나는 독서의 나쁜 예 스탠드 드리겠습니다)
당신은 항상 자신의 예외 클래스를 정의 할 수 있습니다
[Serializable()]
public class OwnException : System.Exception
{
public readonly MaybeDateTime;
...
public OwnException (string message, System.Exception inner) : base(message, inner) { maybe = null; }
public OwnException (string message, System.Exception inner, DateTime maybe) : base(message, inner) { MaybeDateTime = maybe; }
}
을
을 던져 넣으십시오 (datetime 지정).
DateTime datetime -declaration을 try-catch-block 외부로 전송해야하고 SLaks가 옳다면 말이 될 것입니다. datetime은 return-Statement가 catch 된 예외를 throw하는 경우에만 의미있는 내용을 포함 할 수 있습니다. 다른 경우 유용한 응용 프로그램이있을 수 있습니다.
편집 : 동일한 문자열을 사용하여 수행 할 수 있지만 현재 시간을 반환하면 상황을 좋은 방법으로 해결할 경우이를 예외로 다시 제기하려면 다소 바보 스럽습니다. 위에서 언급 한 것처럼 제대로 읽지 못했습니다.
를 호출하지합니다 질문에 명시된 바와 같이 반환 값 (try code path에서) – RichardTheKiwi
반환 값을 사용할 필요가없는 경우 왜 반환합니까? 그냥 예외를 다시 던져. 만약 당신이 * 정말로 * 필요하다면, 당신은 두 개의 인자, 실제 예외와 원하는 리턴 값을 가지는 당신 자신의 래퍼 예외를 만들 수있다. 그러나 그것은 무시 무시하다. –
@Michael - 내 코멘트를 다시 읽으십시오. 나는 그것이 실패했을 때'try 부분에서'리턴을 사용할 필요가 없다는 것을 의미했습니다. 나는 "매개 변수가 날짜를 구성하는 데 유효하지 않은 경우"-> datetime.now를 반환하는 대신 "오류 부분을 다시 던지는 것은 단지 그것이 작동하는 방식에 대한 오해에서 비롯된 것입니다. – RichardTheKiwi