Heim > Web-Frontend > js-Tutorial > Versuchen Sie die Verwendung von „catch' in „javascript_javascript skills'.

Versuchen Sie die Verwendung von „catch' in „javascript_javascript skills'.

WBOY
Freigeben: 2016-05-16 15:44:45
Original
1358 Leute haben es durchsucht

Schauen wir uns zunächst ein Beispiel an

<input id='b1' type='button' value='按钮'/>
<script>
window.onload=function(){
var oBtn=document.getElementById("b1");
function mto(){
alert("123");
};

try //非IE
{
oBtn.attachEvent("onclick",mto,false);

}
catch(e)//IE
{
oBtn.addEventListener("click",mto,false);
}
};
</script>

Nach dem Login kopieren

Hinweis:

Der Unterschied zwischen addEventListener und attachmentEvent ist der erste Parameter. Ersterer ist click und letzterer ist onclick

addEventListener wird im Elementbereich seines Elements ausgeführt

attachEvent wird im globalen Bereich (this=window) ausgeführt

Versuchen Sie...Catch-Anweisung

try...catch kann Ihren Code auf Fehler testen. Der Try-Abschnitt enthält den Code, der ausgeführt werden muss, während der Catch-Abschnitt den Code enthält, der ausgeführt wird, wenn ein Fehler auftritt.
Syntax:

try
{
//在此运行代码
}
catch(err)
{
//在此处理错误
}

Nach dem Login kopieren

Hinweis: Verwenden Sie für try...catch Kleinbuchstaben. Großbuchstaben werden falsch geschrieben.

try...catch...finally Aussage

Implementieren Sie die Fehlerbehandlung für JScript. 

  try  {  
     tryStatements}  
  catch(exception){  
     catchStatements}  
  finally  {  
     finallyStatements}  
Nach dem Login kopieren

============== ===========       

Parameter

tryStatement

Erforderliche Option. Es kann zu einer falschen Aussage kommen.     
Ausnahme
Erforderliche Option. beliebiger Variablenname. Der Initialisierungswert der Ausnahme ist der Wert des ausgelösten Fehlers.     
CatchStatement
Optional. Anweisung, die Fehler behandelt, die im zugehörigen tryStatement auftreten.     
finalStatements
Optional. Eine Anweisung, die bedingungslos ausgeführt wird, nachdem alle anderen Prozesse ausgeführt wurden.       

Beschreibung

Die try...catch...finally-Anweisung bietet eine Möglichkeit, einige oder alle Fehler zu behandeln, die in einem bestimmten Codeblock auftreten können, während der Code weiterhin ausgeführt wird. Wenn ein Fehler auftritt, der vom Programmierer nicht behandelt wird, stellt JScript dem Benutzer nur seine normale Fehlermeldung zur Verfügung, als ob es keine Fehlerbehandlung gäbe. 


Der Parameter

tryStatements enthält Code für mögliche Fehler, während CatchStatement Code für die Behandlung auftretender Fehler enthält. Wenn in tryStatements ein Fehler auftritt, wird die Programmsteuerung zur Verarbeitung an CatchStatements übergeben. Der Initialisierungswert der Ausnahme ist der Wert des Fehlers, der in tryStatements aufgetreten ist. Wenn kein Fehler auftritt, werden CatchStatements nicht ausgeführt. 


Wenn der Fehler nicht in den CatchStatements behandelt werden kann, die mit den TryStatements verknüpft sind, in denen der Fehler aufgetreten ist, verwenden Sie eine Throw-Anweisung, um den Fehler an einen Fehlerhandler auf höherer Ebene weiterzugeben oder erneut auszulösen. 


Nachdem die Anweisungen in tryStatements ausgeführt wurden und die gesamte Fehlerbehandlung in CatchStatements erfolgt ist, können die Anweisungen in FinalStatements bedingungslos ausgeführt werden. 


Bitte beachten Sie, dass die „finalStatements“-Codierung auch dann ausgeführt wird, wenn eine Anweisung in einem try- oder Catch-Block zurückgegeben wird oder ein Fehler erneut in einem Catch-Block ausgegeben wird. Stellt im Allgemeinen sicher, dass „finalStatments“ ausgeführt wird, es sei denn, es liegen unbehandelte Fehler vor. (Zum Beispiel tritt ein Laufzeitfehler in einem Catch-Block auf.)

Beispiel


Das folgende Beispiel veranschaulicht, wie die JScript-Sonderfallbehandlung durchgeführt wird. 


  try  {  
    print("Outer  try  running..");  
    try  {  
      print("Nested  try  running...");  
      throw  "an  error";  
    }  
    catch(e)  {  
      print("Nested  catch  caught  "  +  e);  
      throw  e  +  "  re-thrown";  
    }  
    finally  {  
      print("Nested  finally  is  running...");  
    }     
  }  
  catch(e)  {  
    print("Outer  catch  caught  "  +  e);  
  }  
  finally  {  
    print("Outer  finally  running");  
  }  
  //  Windows  Script  Host  作出该修改从而得出  WScript.Echo(s)  
  function  print(s){  
     document.write(s);  
  }  
Nach dem Login kopieren
führt zu folgenden Ergebnissen:


Äußerer Versuchslauf..

Verschachtelter Versuch ausgeführt...
Der verschachtelte Catch hat einen Fehler abgefangen
Endlich läuft Nested...
Der äußere Fang hat einen Fehler abgefangen, der erneut ausgelöst wurde
Außen läuft endlich

Das Folgende ist ein Beispiel für die Javascript-Ausnahmebehandlung.

var array = null;
try {
  document.write(array[0]);
} catch(err) {
  document.writeln("Error name: " + err.name + "");
  document.writeln("Error message: " + err.message);
}
finally{
  alert("object is null");
}

Nach dem Login kopieren

Programmausführungsprozess

1. Da das Array array nicht erstellt wird, wenn array[0] verwendet wird, ist array ein leeres Objekt. Der Aufruf von array[0] im Programm generiert eine Objekt-ist-Null-Ausnahme
2. Die Anweisung „catch(err)“ erfasst diese Ausnahme und gibt den Fehlertyp über „err.name“ aus, und „err.message“ gibt die Fehlerdetails aus
3. „finally“ ähnelt „finally“ von Java und wird unabhängig davon ausgeführt, ob eine Ausnahme vorliegt oder nicht.

Fassen Sie nun die Informationen zusammen, die den sechs Werten von Error.name entsprechen:

1. EvalError: Die Verwendung von eval() stimmt nicht mit der Definition
überein 2. RangeError: Wert außerhalb der Grenzen
3. ReferenceError: Ungültiger oder nicht erkannter Referenzwert
4. SyntaxError: Ein Syntax-Parsing-Fehler ist aufgetreten
5. TypeError: Falscher Operandentyp
6. URIError: Unsachgemäße Verwendung der URI-Verarbeitungsfunktion

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage