레이아웃 스킨 blade 문법 try catch 사용시 오류
목차
-
오류남. @php if($document_srl){ try { // 코드 } catch (Exception $e) { // 예외 처리 } } @endphp
-
오류 안남 @php if($document_srl){ try { // 코드 } catch (Exception) { // 변수 없이 catch } } @endphp
php8.3임.
A.
Rhymix Blade 템플릿 파서의 제한사항입니다.
원인
Rhymix의 Blade 컴파일러가 @php 블록 내의 $변수를 템플릿 변수로 파싱하려고 시도하면서 발생하는 문제입니다. catch (Exception $e)에서 $e를 Rhymix 컨텍스트 변수로 해석하려다 오류가 납니다.
해결 방법
-
PHP 8.0+ non-capturing catch 사용 (권장) @php try { // 코드 } catch (Exception) { // 예외 변수 불필요 시 } @endphp
-
예외 정보가 필요한 경우 @php try { // 코드 } catch (Throwable) { $lastError = error_get_last(); // 또는 별도 로깅 } @endphp
-
PHP 파일로 분리 복잡한 try-catch 로직은 별도 PHP 클래스/함수로 분리 후 호출: @php $result = MyHelper::safeExecute($document_srl); @endphp
PHP 8.0부터 catch 변수 생략이 공식 지원되므로, 예외 객체가 필요 없다면 catch (Exception) 형태가 더 깔끔합니다.
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
첫 댓글을 남겨보세요.