코딩하는 특성으로 인해 코드에서 재귀 함수로 인해 예외가 발생했습니다. 예외는 무시되고 대신 FALSE가 반환됩니다. 그래서 여기에 내 문제를 설명하기 위해 간단한 코드가 있습니다.PHP에서이 '최대 중첩 기능'예외를 잡을 수없는 이유는 무엇입니까?
function recursive() {
try{ recursive(); }
catch(Exception $e)
{ echo "Error Caught!"; }
}
recursive();
'최대 기능 중첩 수준'100 '에 도달했습니다. 중단되었습니다.' 예외. 나는 try-catch의 작업을 오해 했습니까?
'예외'입니까? 나는 그것이 '오류'라고 생각했고, 그 오류는 '치명적인 오류'였다. 따라서 fata 오류를 예외로 변환 할 수있는 오류 처리기가 없으면 캐치 할 수 없습니다. –
저는 PHP에 대한 전문가가 아니므로 적용 할 수 있는지 잘 모릅니다. 그러나 예외를 고려하지 않으면 재귀는 꼬리 재귀이므로 최종 호출 최적화 될 수 있으므로 루프로 바뀌므로 옵티마이 저는 재귀를 루프로 전환했을 수 있습니다. –
그래, 나는 Mark가 그것을 가지고 있다고 생각한다. 나는 이런 오류를 잡을 수 없다는 것을 전혀 모른다. – arch