는 다음 코드 가정 : dependency::bar()
이 예외를 발생하는 것으로 알려져있다예외는 언제 문서화해야합니까?
public function foo()
{
return $this->dependency->bar();
}
경우,하지만 foo()
는 그것을 처리 할 것으로 예상되지 않는다. foo()
에 @throws
항목이 docblock에 있습니까? 아니면 암묵적이어야합니까? phpdoc 문서는 다소 모호합니다.
dependency
이 인터페이스를 기반으로 주입된다고 가정하면; 인터페이스 문서는 수 예외를 throw 할 수 있습니다.
예외가 호출 코드에서 처리되어야하는지 또는 상황과 관련이없는 것이 중요합니까?
의미는 모든 방법 :
다른 언어 (java)는 함수 본문에서 예외 (처리되지 않음)가 명시 적으로 정의되도록 필수입니다. 호출 스택에서 멀리 예외를 처리하면 정보가 더 이상 손상되지 않을 수 있습니다. (이 특별한 경우에는 foo가 예외를 처리하지 않고 foo는 호출자가 처리할지 여부를 알지 못하므로 foo에 따라주의해야합니다) – Gerard
'$ this-> dependency -> bar()'는 문서의 호출자 및/또는 사용자가 알 수 없거나 알 수없는 내부 구현 세부 사항이며 예외를 문서화하는 것이 catch 가능하게 만드는 유일한 방법입니다. PhpStorm을 사용하는 경우 – deceze
btw - IDE는 @throws 항목에 예외를 두도록 권장합니다. –