내가 WebCrawler
클래스라고 가정합니다. 발생할 수있는 몇 가지 오류가 있습니다. 오류를 어떻게 전파해야합니까?사용자 정의 예외를 발생 시키거나 상수를 반환하거나 기호를 반환 하시겠습니까? 왜?
사용하여 예외 :
class WebCrawler
class UrlBadFormatError < StandardError; end
class PageNotFoundError < StandardError; end
class UnauthorizedError < StandardError; end
def crawl(url)
if(! url =~ /some_format/)
raise UrlBadFormatError
response = get(url)
if(response.code == 404)
raise PageNotFoundError
if(response.code == 403)
raise UnauthorizedError
...
end
end
또는 상수 :
class WebCrawler
URL_BAD_FORMAT = 1
PAGE_NOT_FOUND = 2
UNAUTHORZIED = 3
def crawl(url)
if(! url =~ /some_format/)
return URL_BAD_FORMAT
response = get(url)
if(response.code == 404)
return PAGE_NOT_FOUND
if(response.code == 403)
return UNAUTHORZIED
...
end
end
또는 기호 : 최고
class WebCrawler
def crawl(url)
if(! url =~ /some_format/)
return :url_bad_format
response = get(url)
if(response.code == 404)
return :page_not_found
if(response.code == 403)
return :unauthorized
...
end
end
? 또는 무엇에 의존 하는가 (무엇인가?)
IDE를 사용하는지 여부는 * how * 또는 * what * 프로그램에서 고려해야한다고 생각하지 않습니다. –
@AndrewMarshall 그건 하나의 관점이지만, 실제로 중요 할 수 있습니다. –
문체/문서 규칙 (문자 그대로의 코드에는 실제로 영향을주지 않습니다) 이외에는 안됩니다. IDE를 사용하든 IDE를 사용하든 관계없이 일류 시민이 아닌 예외는 (클래스에 의한 것임을 가정하면) 사실입니다. –