異常処理文

3179 ワード

異常処理文
  • throw文
  • catch
  • finally文
  • try...catch.finally文
  • try文はコードブロックのエラーをテストします.
  • catch文処理エラー.
  • throw文は、カスタムエラーを作成します.
  • finally文は、tryとcatch文の後、トリガ異常があるかどうかにかかわらず、この文が実行されます.
  • throw文
    throw文の役割は異常を投げることです.投げ異常とは、システムに異常やエラーが発生したことを信号で伝えることです.
    throw文は、カスタムエラーを作成することを許可します.正確な技術用語は、異常を作成または投げ出すことです.throwをtryとcatchと一緒に使用すると、プログラムフローを制御して、カスタムエラーメッセージを生成することができます.異常はJavaScript文字列、数字、論理値、またはオブジェクトとすることができます.本例では入力変数の値を検出します.値が間違っていると、異常(エラー)が発生します.catchはこのエラーを捉えて、カスタムエラーメッセージを表示します.
    例:
    function myFunction() {
        var message, x;
        message = document.getElementById("message");
        message.innerHTML = "";
        x = document.getElementById("demo").value;
        try { 
            if(x == "")  throw "   ";
            if(isNaN(x)) throw "    ";
            x = Number(x);
            if(x < 5)    throw "  ";
            if(x > 10)   throw "  ";
        }
        catch(err) {
            message.innerHTML = "  : " + err;
        }
    }
    
    以下、throw文を使ってプログラム中の異常を投げます.まず変数を定義し、1と0の商に割り当てます.この変数の結果は無限大で、つまりInfinityです.自分で0の異常を検査したいなら、throw文を使って異常を捨てればいいです.
    プログラムコードは以下の通りです.
    
    try{
            var  num=1/0;
            if (num=="Infinity") {
                     throw  new  Error("       0");
             }
      }catch(exception.message);
      }
                     
    
    上記の手順から、変数numが無限大である場合、throw文を使って異常を投げ、この異常はcatch領域で捕捉され、ポップアップのエラーメッセージダイアログに異常なメッセージが表示されることが分かります.
    catch
    catch文は、tryコードブロックにエラーが発生したときに実行されるコードブロックを定義することを許可します.JavaScript文tryとcatchはペアで現れます.構文:
    try {
        ...    //     
    } catch(e) {
        ...    //        
    } finally {
        ...    //    
    }
    
    次の例では、わざとtryブロックのコードに誤字を書きました.catchブロックはtryブロックのエラーを捉え、コードを実行して処理します.
    例:
    var txt=""; 
    function message() 
    { 
        try { 
            adddlert("Welcome guest!"); 
        } catch(err) { 
            txt="       。

    "; txt+=" :" + err.message + "

    "; txt+=" 。

    "; alert(txt); } }
    finally文
    finally文は、前のtryおよびcatchに異常があるかどうかを問わず、このコードブロックを実行します.
    例:
    function myFunction() {
      var message, x;
      message = document.getElementById("p01");
      message.innerHTML = "";
      x = document.getElementById("demo").value;
      try { 
        if(x == "") throw "    ";
        if(isNaN(x)) throw "       ";
        x = Number(x);
        if(x > 10) throw "  ";
        if(x < 5) throw "  ";
      }
      catch(err) {
        message.innerHTML = "  : " + err + ".";
      }
      finally {
        document.getElementById("demo").value = "";
      }
    }
    
    try...catch...finally文
    try...catch...finallyの文法フォーマットは以下の通りです.
    
    try{
             somestatements;
          }
          catch(exception   e){
                       somestatements;
             }finally{
                     somestatements;
              }
               
    
    try...catch文は一つのcatch文しかありません.これはjavascript言語では異常なタイプが指定できないからです.