Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über JavaScript-Ausnahmebehandlungsanweisungen_Javascript-Fähigkeiten

Eine kurze Diskussion über JavaScript-Ausnahmebehandlungsanweisungen_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:52:261514Durchsuche

Während der Ausführung des Programms treten zwangsläufig Fehler auf, und die Ausführungsergebnisse nach Fehlern sind häufig falsch. Daher werden Programme, die während der Ausführung Fehler machen, normalerweise zwangsweise beendet. Laufzeitfehler werden zusammenfassend als Ausnahmen bezeichnet. Um auftretende Fehler behandeln zu können, stellt JavaScript Anweisungen zur Ausnahmebehandlung bereit. Enthält Try-Catch, Try-Catch-finally und Throw.

Try-Catch-Anweisung

try{
tryStatements
}
catch(exception){
catchStatements
}

Parameterbeschreibung:
tryStatements: erforderlich. Eine Folge von Anweisungen, bei denen ein Fehler auftreten kann.
Ausnahme: erforderlich. Jeder Variablenname, der zum Referenzieren des Fehlerobjekts verwendet wurde, als der Fehler auftrat.
CatchStatements: optional. Fehlerbehandlungsanweisung, die zur Behandlung von Fehlern verwendet wird, die in tryStatements auftreten.
Beim Codieren wird die Anweisung, bei der ein Fehler auftreten kann, normalerweise in die geschweiften Klammern des Try-Blocks geschrieben und der Fehler im nachfolgenden Catch-Block behandelt. Die Fehlerinformationen sind in einem Fehlerobjekt (Error-Objekt) enthalten, auf das über die Ausnahmereferenz zugegriffen werden kann. Bestimmen Sie anhand der Fehlerinformationen im Fehlerobjekt, wie zu verfahren ist.

<script type="text/javascript">
try{
var n = error; //人为引发一个错误,error未定义就使用
}
catch(e){
alert((e.number&0xFFFF) + "号错误:" + e.description); //错误处理:仅输出错误信息
}
</script>

Dieser Codeausschnitt verwendet eine Try-Catch-Struktur, um Programmlaufzeitfehler zu behandeln, und Zeile 4 löst künstlich einen Fehler aus. Der Catch-Block in den Zeilen 6–9 fängt Fehler ab und behandelt sie.
Tipp: JavaScript-Fehler sind Laufzeitfehler und Syntaxfehler werden während der Kompilierungsphase gefunden; Fehlerbehandlungsanweisungen können nur Laufzeitfehler behandeln.

try-catch-finally-Anweisung

try{
tryStatements;
}
catch( exception ){
handleStatements;
}
finally{
fianllyStatements;
}

Parameterbeschreibung:
tryStatements: erforderlich, Anweisungen, die Ausnahmen verursachen können.
handleStatements: optionale Ausnahmebehandlungsanweisung.
fianllyStatements: Optionale Anweisungen, die bedingungslos nach der Ausführung anderer Prozeduren ausgeführt werden.
Auch wenn kein Fehler auftritt, werden die Anweisungen im „finally“-Block am Ende ausgeführt, und hier wird normalerweise Code zur Ressourcenbereinigung platziert.
Beim Durchlaufen eines Arrays mit Apple-Namen wird künstlich eine Ausnahme ausgelöst.

<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>

Zeile 5 dieses Codeausschnitts verwendet eine undefinierte Variable m, die künstlich eine Ausnahme auslöst. Die Zeilen 11 bis 13 fangen Ausnahmen ab und behandeln sie. Der „final“-Block in den Zeilen 14 bis 18 bereinigt Ressourcen. Diese Anweisung wird bedingungslos ausgeführt, um sicherzustellen, dass die vom Fruit-Array belegten Ressourcen nicht verloren gehen.

Throw-Anweisung

Mehrere Ausnahmebehandlungsanweisungen können verschachtelt werden. Wenn mehrere Strukturen verschachtelt sind, kann die Try-Catch-Anweisung in der inneren Ebene diese auslösen, wenn sie nicht beabsichtigt, die Ausnahme selbst zu behandeln. Die übergeordnete Try-Catch-Anweisung kann vom untergeordneten Element ausgelöste Ausnahmen empfangen, und die Wurfoperation verwendet die throw-Anweisung.
throw expression;
Der Wert des Ausdrucks wird als Fehlermeldungsobjekt übergeben, das von der Catch-Anweisung erfasst wird. Die throw-Anweisung kann überall dort verwendet werden, wo eine Ausnahme ausgelöst werden soll.
Normalerweise kann 0 nicht als Teiler verwendet werden, daher können Sie eine Ausnahme definieren und diese auslösen, wenn der Teiler 0 ist.

<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>

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn