2009-09-18 3 views
4

이 질문은 광범위한 프로그래밍 언어를 다룹니다. 그러나이 경우 Python을 사용하여 특별히 작업하고 있습니다.사용자 정의 예외의 올바른 이름은 무엇입니까?

몇 가지 사용자 정의 예외를 만들고 싶습니다만, 어떻게 세분화해야하는지 잘 모르겠습니다. 나는 다음과 같은 클래스가있는 경우 예를 들어, : 나는 종료 시간이 시작 시간 이전에 발생하는 경우 예외를 발생 싶습니다

class Race(object): 
    def __init__(self, start_time, end_time): 
     if end_time < start_time: 
      raise WhatToNameThisError 
     self._start_time = start_time 
     self._finish_time = end_time 

을,하지만 난 그것을 호출 할 수 있을까?

  • RaceError (레이스 클래스에 관련된 모든 예외는이를 사용할 수 있으며, 메시지가 그들 사이에 구별 할 수 있습니다)
  • RaceFinishTimeBeforeStartTime (더 구체적으로,하지만 난 잡기있어 정확히 알고 의미)

다른 방법으로이를 살펴볼 것이므로 예외를 명명하는 데 더 많은 옵션이 필요합니다. 이것을 설명하는 기준이나 지침이 있습니까?

답변

6

이 경우에는 ValueError가 내장되어 있다고 생각합니다.

예외에 ValueError 동작 내장 또는 함수 가 적당한 유형 그러나 부적절한 값 이있는 인자를 수신하고, 그 상황이 설명되지 않는 경우

제기 : 파이썬 문서에서 예 : IndexError와 같은보다 정확한 예외입니다.

+3

'사용자 코드는 기본 제공 예외를 발생시킬 수 있습니다. 이것은 ... 인터프리터가 같은 예외를 발생시키는 상황과 마찬가지로 "오류 상태"를보고하는 데 사용할 수 있습니다. http://docs.python.org/library/exceptions.html – dcrosta

+0

이것은 대부분의 경우에 충분합니다 사례. – Jon

1

가능한 한 적절한 기본 제공 예외를 사용하려고합니다. Java 및 C#과 같은 언어에서는 예외 목록이 너무 강력하기 때문에 자신을 정의 할 필요가 거의 없습니다. 나는 파이썬의 예외 목록에 익숙하지 않지만, IIRC에는 적어도 꽤 좋은 것들이 많이있다.

관련 문제