>웹 프론트엔드 >JS 튜토리얼 >자바스크립트에서 예외를 잡는 방법은 무엇입니까?

자바스크립트에서 예외를 잡는 방법은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-07-19 18:52:568222검색

방법: 1. try catch finally 문, 구문 "try{//Debug code block}catch(e) {//Capture process 예외}finally{//Later cleanup code block}"을 사용합니다. 2. 창 개체 창을 사용합니다. 오류 발생 이벤트.

자바스크립트에서 예외를 잡는 방법은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

Javascript에서 예외를 잡는 방법

JavaScript 예외는 주로 try catch finally 문과 창 개체 windowonerror를 사용합니다. /code> 캡처할 이벤트입니다. JavaScript的异常主要使用try catch finally语句以及窗口对象windowonerror事件来捕获。

try catch finally

try catch finally只能捕获运行时的错误,无法捕获语法错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号。try catch finally语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。

try{
    // try_statements
    throw new TypeError("Test");
}catch (e){
    // catch_statements
    console.log("catch_statements");
    if(e instanceof TypeError){
        // handle this expected error
        console.log("handle this expected error");
    }else{
        // handle unexpected error
        console.log("handle unexpected error");
    }
}finally{
    // finally_statements
    console.log("finally_statements");
}

/*
    注:
    [catch (e if e instanceof TypeError) { // 非标准
       catch_statements
    }]
*/

通过Error的构造器可以创建一个错误对象,当运行时错误产生时,Error的实例对象会被抛出,Error对象也可用于用户自定义的异常的基础对象,Js内建了几种标准错误类型:

  • EvalError: 创建一个error实例,表示错误的原因:与eval()有关。
  • RangeError: 创建一个error实例,表示错误的原因:数值变量或参数超出其有效范围。
  • ReferenceError: 创建一个error实例,表示错误的原因:无效引用。
  • SyntaxError: 创建一个error实例,表示错误的原因:eval()在解析代码的过程中发生的语法错误。
  • TypeError: 创建一个error实例,表示错误的原因:变量或参数不属于有效类型。
  • URIError: 创建一个error实例,表示错误的原因:给encodeURI()decodeURl()传递的参数无效。

window.onerror

window.onerror可以捕捉语法错误,也可以捕捉运行时错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号,只要在当前window执行的Js脚本出错都会捕捉到,通过window.onerror

try catch finally

try catch finally는 런타임 오류만 잡을 수 있고 구문 오류는 잡을 수 없습니다. 오류 정보, 스택, 오류 파일, 줄 번호, 열 번호를 가져옵니다. try catch finally 문은 시도할 문 블록을 표시하고 예외가 발생할 경우 던져질 응답을 지정합니다. 🎜
/*
    message:错误信息(字符串)。
    source:发生错误的脚本URL(字符串)
    lineno:发生错误的行号(数字)
    colno:发生错误的列号(数字)
    error:Error对象(对象)
    若该函数返回true,则阻止执行默认事件处理函数。
*/
window.onerror = function(message, source, lineno, colno, error) { 
    // onerror_statements
}

/*
    ErrorEvent类型的event包含有关事件和错误的所有信息。
*/
window.addEventListener('error', function(event) { 
    // onerror_statements
})
🎜오류 객체는 Error 생성자를 통해 생성할 수 있습니다. 런타임 오류가 발생하면 Error의 인스턴스 객체가 발생합니다. code> 객체는 사용자 정의 예외의 기본 객체로 사용될 수도 있습니다. Js에는 여러 내장 표준 오류 유형이 있습니다:
🎜
  • EvalError : eval()과 관련된 오류의 원인을 나타내는 error 인스턴스를 만듭니다.
  • RangeError: 오류 원인을 나타내는 error 인스턴스를 생성합니다. 숫자 변수 또는 매개변수가 유효한 범위를 초과했습니다.
  • ReferenceError: 오류의 원인을 나타내는 error 인스턴스를 생성합니다: 잘못된 참조.
  • SyntaxError: 오류의 원인을 나타내는 error 인스턴스를 생성합니다. eval()이 프로세스 중에 발생합니다. 코드 구문 오류를 구문 분석합니다.
  • TypeError: 오류의 원인을 나타내기 위해 error 인스턴스를 생성합니다. 변수 또는 매개변수가 유효한 유형에 속하지 않습니다.
  • URIError: 오류 원인을 나타내는 error 인스턴스를 생성합니다. encodeURI() 또는 를 제공합니다. decodeURl( )전달된 매개변수가 잘못되었습니다.
🎜🎜window.onerror🎜🎜🎜window.onerror는 구문 오류를 잡을 수 있습니다. 또는 By 런타임 오류를 캡처하면 오류 정보, 스택, 오류 파일, 줄 번호 및 열 번호를 얻을 수 있습니다. 현재 에서 실행된 Js 스크립트의 모든 오류는 캡처된 경우 window.onerror를 통해 프런트엔드 오류 모니터링을 수행할 수 있습니다. 보안상의 이유로 다른 도메인에서 로드된 스크립트에서 구문 오류가 발생하면 구문 오류에 대한 세부 정보가 보고되지 않습니다. 🎜rrreee🎜【추천 학습: 🎜javascript 고급 튜토리얼🎜】🎜

위 내용은 자바스크립트에서 예외를 잡는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.