2013-08-07 4 views
0

캐치가 트리거되면 오류 보고서 페이지가 표시되는 프레임 워크에서 try catch를 얻었습니다.이 보고서 페이지의 한 가지는 메뉴를 표시한다는 것입니다 시대가 데이터베이스 어디에서 온수 캐치 내에서 캐치 시도 가능

내가 그것을 할 수 있어요 생각하면 데이터베이스에 연결할 수 있다면이

try 
{ 
    code that would throw an excpetion 
} 
catch(Exception $e) 
{ 
    try 
    { 
     connect to database 
     run query 
     log error in database 
     output screen using database data 
    } 
    catch(Exception $e) 
    { 
     output screen using static html 
    } 
} 

이 방법 같은 경우 캐치 뭔가를 또 다른 시도 캐치를 넣어 줄 것입니다 예외가 데이터베이스 연결 오류 인 경우 데이터베이스 데이터에서 생성 된 동적 HTML 출력이 아닌 정적 html 출력을 사용합니다

나는 데이터베이스 오류를 (필요한 테이블을 삭제)이 발생할 때 시도의 캐치 캐치에서 일하거나 (이 프레임 워크의 날씨하는 것이 가능하다조차 경우

그러나 내 정적 HTML 내가 궁금

작동하지 않습니다 나는 magento를 사용하고있다.) 이것이 가능하다면 프레임 워크가 왜 멈추는 지 알아내는 데 시간을 할애하기 때문이다.

답변

1

네, try/catch 블록을 블록을 잡아라.

그러나 설명에서 보면 더 지능적인 예외 잡기가 필요하다고 생각됩니다. 다음과 같이 할 수 있습니다.

try { 
    // some operations including something with a database 
} 
catch (DatabaseException $e) { 
    // the exception thrown by the code above was a DatabaseException 
    // output some error message without using the database 
} 
catch (Exception $e) { 
    // the exception thrown by the code above could have been any type of exception EXCEPT a DatabaseException 
    // so you can still try to use the database to compose the error message 
} 

예외를 throw 할 수있는 모든 항목은 catch 블록에서 실행할 때 이러한 예외를 throw 할 수 있습니다. 예를 들어, try 블록이 전에 예외 을 던집니다. 데이터베이스 코드에 도달하면 원본이 아닌 데이터베이스 예외를 처리 할 때 데이터베이스 예외가 계속 발생할 수 있습니다.