2017-03-16 8 views
2

포니에는 매개 변수가없는 단일 예외 값이 있습니다.포니의 여러 유형의 오류를 구분합니까?

불행히도 나는 여러 종류의 예외를 던지기를 원하는 코드가 있으며, 제대로 처리하기 위해 무엇이 필요한지를 알아야합니다. 예를 들어, 프로그램을 중단 할 때 사용자에게 중요한 것은 올바른 오류 메시지!

포니에서 이렇게하는 관용적 인 방법은 무엇입니까?

답변

3

현재 관용구적인 방법은 오류를 사용하지 않고 대신 일반 반환 유형의 공용체 형식과 오류 이유를 사용하는 것입니다. 예를 들어, ReturnType를 반환하고 Error1 또는 Error2 중 하나에 오류가 할 수있는 기능이있는 경우, 함수 서명은

fun foo(): (ReturnType | Error1 | Error2) 

가 호출자의 기능은 다음 match 노조에 무슨 일이 있었는지 확인해야 할 수 있습니다.

표준 라이브러리의 files 패키지는이 예디를 광범위하게 사용합니다.

또한 완전성을 위해 입력 오류를 추가 할 때 RFC이 현재 논의되고 있습니다.