try 및 catch 블록 모두에 동일한 코드를 넣을만한 이유가 있습니까?


13

파일에서 : 메소드 app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Datetime.phprender()에서 try 및 catch 블록에서 정확히 동일한 코드가 실행되는 것처럼 보입니다. 예외는 전혀 처리되지 않습니다. 다음과 같은 코드를 작성하는 이유 (있는 경우)가 무엇인지 궁금합니다.

try {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
} catch (Exception $e) {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
}

답변:


3

나에게 그러한 특정 코드의 이유는 없습니다.

시간 초과 요청을 처리 할 때 그렇게 할 수있는 이유를 생각할 수 있습니다.

예를 들면 다음과 같습니다.

  • 일부 코드는 완료하는 데 시간이 오래 걸립니다
  • 이 코드의 결과에 따라 무언가를 시도합니다
  • 코드가 아직 완료되지 않았으므로 예외가 발생합니다.
  • 캐치 블록에서 대기 시간 ( sleep) 을 추가 하고 다시 시도하십시오.

그러나 어쨌든 이것은 매우 나쁜 디자인이며 예외가 리소스를 소비하기 때문에 성능면에서 나쁩니다.

catch블록은 예외 처리 및 미완성 물건의 롤백을 위해 사용되어야합니다 (예 : 데이터베이스 롤백)

언급 한 코드에 대해 전체 방법을 확인하지는 않았지만 코드를 리팩토링해야 한다고 생각하는 경향이 있거나 프로그래머와 대화해야 코드의 이유를 이해해야합니다. 코드에서 더 큰 문제를 더 깊이 숨길 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.