사용자 입력을 구문 분석 할 때 일반적으로 예외를 throw하지 않고 확인 메소드를 사용하는 것이 좋습니다 . .NET BCL에서 이는 예를 들어 int.Parse(유효하지 않은 데이터에 대해 예외가 발생 함)과 int.TryParse( false유효하지 않은 데이터가 반환 됨)의 차이입니다.
나는 내 자신을 디자인하고 있습니다
Foo.TryParse(string s, out Foo result)
메서드와 반환 값이 확실하지 않습니다. 내가 사용할 수있는 bool.NET 자신과 같은 TryParse방법,하지만 그건에 대한 징후주지 않았 타입 정확한 이유에 대한 오류, 왜 s 로 해석 할 수 없었던을 Foo. (예를 들어, 일치하지 s않는 괄호, 문자 수가 잘못되었거나 또는 등이 Bar없는 문자 Baz등이있을 수 있음)
API 사용자 로서 작업 실패 이유를 알려주지 않고 성공 / 실패 부울을 반환하는 메소드를 싫어합니다 . 이로 인해 추측 게임을 디버깅 할 수 있으며 라이브러리의 클라이언트에도 적용하고 싶지 않습니다.
이 문제에 대한 많은 해결 방법 (상태 코드 반환, 오류 문자열 반환, 오류 문자열을 출력 매개 변수로 추가)을 생각할 수 있지만 모두 각각의 단점이 있으며 다음 규칙을 준수하고 싶습니다. .NET Framework .
따라서 내 질문은 다음과 같습니다.
.NET Framework에 (a) 예외를 발생시키지 않고 입력을 구문 분석하고 (b) 간단한 true / false 부울보다 더 자세한 오류 정보를 계속 반환하는 메서드가 있습니까?
Parse()입니다.