use strict
모드를 사용하여 선언 된 기존 함수에서 작업하고 있습니다. 내가 이상한 것을 발견 한 것은 예외가 던져 질 때 catch
블록이 실행되지 않는다는 것입니다. 나는 그것이 strict mode
선과 관련이 있다고 생각한다. 내가 타는 때, 그것은 catch
블록에 들어간다.strict 모드에서 사용할 때 try/catch JavaScript 이상한 동작
난 항상 try/catch
을 사용하는 주된 목표는 런타임에 제어되지 않는 상황이있을 때 코드가 갑자기 종료되지 않도록 (아무런 제어없이) 방지하는 것입니다.
캐치 절은 예외가 try 블록에을 던져 경우 를 수행 할 작업을 지정 문이 포함되어 있습니다.
엄격 모드와 함께 사용하면 효과가없는 것처럼 보입니다. 그 행동에 대한 설명이 있습니까?
내 코드 :
function test(){
\t "use strict"
\t //...
\t try {
\t \t // var dt = new Date(2017, 10, 27, 15, 23, 9); /* works fine */
\t \t var dt = new Date(2017, 10, 27, 15, 23, 09);
\t } catch(e){
\t \t console.log("inside catch");
\t } finally {
\t console.log("inside finally");
\t }
\t //...
}
test();
// output: Uncaught SyntaxError:
// Decimals with leading zeros are not allowed in strict mode.
비
질문을하기 전에, 나는에 유래에서 몇 가지 질문을 보았다 그러나 나는 설명을 발견하지 않았다. 예를 들어 this question은 const
의 범위에 해당하며 try/catch
자체의 동작은 아닙니다.
엄격 모드에서 8 진수를 사용할 수 없으므로 구문 오류가 발생합니다. 이에 대한 이전 토론은 https://stackoverflow.com/questions/5963045/syntax-errors-can-be-caught-in-javascript에서 가능합니다. –