Errors will inevitably occur during the running of the program, and the running results after errors are often incorrect. Therefore, programs that make errors during running are usually forcibly terminated. Runtime errors are collectively called exceptions. In order to get a chance to handle errors when they occur, JavaScript provides exception handling statements. Contains try-catch, try-catch-finally and throw.
try-catch statement
try{ tryStatements } catch(exception){ catchStatements }
Parameter description:
tryStatements: required. A sequence of statements in which an error may occur.
exception: required. Any variable name used to reference the error object when the error occurred.
catchStatements: optional. Error handling statement, used to handle errors that occur in tryStatements.
When coding, the statement where an error may occur is usually written into the curly braces of the try block, and the error is handled in the subsequent catch block. The error information is contained in an error object (Error object), which can be accessed through the exception reference. Determine how to handle based on the error information in the error object.
<script type="text/javascript"> try{ var n = error; //人为引发一个错误,error未定义就使用 } catch(e){ alert((e.number&0xFFFF) + "号错误:" + e.description); //错误处理:仅输出错误信息 } </script>
This code snippet uses a try-catch structure to handle program runtime errors, and line 4 artificially raises an error. The catch block on lines 6~9 catches errors and handles them.
Tip: JavaScript errors are run-time errors and syntax errors. Syntax errors are found during the compilation phase; run-time errors are found during the running process. Error handling statements can only handle run-time errors.
try-catch-finally statement
try{ tryStatements; } catch( exception ){ handleStatements; } finally{ fianllyStatements; }
Parameter description:
tryStatements: required, statements that may cause exceptions.
handleStatements: optional, exception handling statement.
fianllyStatements: Optional, statements that are executed unconditionally after the execution of other procedures.
Even if no error occurs, the statements in the finally block will be executed at the end, and resource cleanup code is usually placed here.
An exception is artificially thrown while traversing an array with Apple names.
<script type="text/javascript"> try{ var fruit = new Array("鸭梨","苹果","葡萄","李子"); for( n=0;n<fruit.length;m++) { document.write(fruit[n] + ""); } } catch( e ) { alert( (e.number&0xFFFF) + "号错误:" + e.description ); } finally{ fruit = null; alert("fruit="+fruit+"已经断开fruit数组的引用!"); } </script>
Line 5 of this code snippet uses an undefined variable m, artificially triggering an exception. Lines 11 to 13 catch exceptions and handle them. The finally block in lines 14 to 18 cleans up resources. This statement is executed unconditionally to ensure that the resources occupied by the fruit array are not leaked.
throw statement
Multiple exception handling statements can be nested. When multiple structures are nested, the try-catch statement in the inner layer can throw it if it does not intend to handle the exception itself. The parent try-catch statement can receive exceptions thrown by the child, and the throwing operation uses the throw statement.
throw expression;
The value of the expression is passed out as an error message object, which will be captured by the catch statement. The throw statement can be used anywhere where an exception is intended to be thrown.
Normally 0 cannot be used as a divisor, so you can define an exception and throw it if the divisor is 0.
<script> try{ var dividend = 100; //被除数 var parts = 0; //除数 if( parts == 0){ //如果除数为0则抛出异常 throw "Error:parts is zero"; //抛出异常 } alert("每人" + dividend/parts + "份"); //输出提示信息 } catch(e){ //此处将捕获try块中抛出的异常 alert(e); //用对话框输出错误对象的信息 } </script>
The above is the entire content of this article, I hope you all like it.