javascript_javascript スキルで使用法をキャッチしてみてください

WBOY
リリース: 2016-05-16 15:44:45
オリジナル
1326 人が閲覧しました

まず例を見てみましょう

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

ログイン後にコピー

注:

addEventListener とattachEvent の違いは、最初のパラメータです。前者は click で、後者は onclick です。

addEventListener はその要素の要素スコープで実行されます

attachEvent はグローバル スコープ (this=window) で実行されます

Try...Catch ステートメント

try...catch はコード内のエラーをテストできます。 try セクションには実行する必要があるコードが含まれ、catch セクションにはエラーが発生したときに実行されるコードが含まれます。
構文:

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

ログイン後にコピー

注: try...catch には小文字を使用してください。大文字は間違ってしまいます。

try...catch...finally ステートメント

JScript のエラー処理を実装します。

  try  {  
     tryStatements}  
  catch(exception){  
     catchStatements}  
  finally  {  
     finallyStatements}  
ログイン後にコピー

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

パラメータ

tryStatement

必須のオプション。誤った記述が発生する可能性があります。
例外
必須のオプション。任意の変数名。例外の初期化値は、スローされたエラーの値です。
catchStatement
オプション。関連する tryStatement で発生したエラーを処理するステートメント。
最終的にステートメント
オプション。他のすべてのプロセスが発生した後に無条件に実行されるステートメント。

説明

try...catch...finally ステートメントは、コードの実行を継続しながら、特定のコード ブロックで発生する可能性のある一部またはすべてのエラーを処理する方法を提供します。プログラマが処理できないエラーが発生した場合、JScript は、エラー処理がなかったかのように、通常のエラー メッセージをユーザーに提供するだけです。


tryStatements パラメータには考えられるエラーのコードが含まれており、catchStatement には発生したエラーを処理するコードが含まれています。 tryStatements でエラーが発生した場合、プログラム制御は catchStatements に渡されて処理されます。例外の初期化値は、 tryStatements で発生したエラーの値です。エラーが発生しない場合、catchStatement は実行されません。


エラーが発生した tryStatements に関連付けられた catchStatements でエラーを処理できない場合は、throw ステートメントを使用してエラーを上位レベルのエラー ハンドラーに伝播または再スローします。


tryStatements 内のステートメントが実行され、catchStatements 内のすべてのエラー処理が発生した後、finallyStatements 内のステートメントを無条件に実行できます。


try ブロックまたは catch ブロックでステートメントが返された場合でも、catch ブロックでエラーが再スローされた場合でも、finallyStatements エンコーディングは引き続き実行されることに注意してください。通常、未処理のエラーがない限り、finallyStatments が確実に実行されます。 (たとえば、catch ブロックで実行時エラーが発生します。)。


次の例は、JScript の特殊なケース処理がどのように実行されるかを示しています。


  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);  
  }  
ログイン後にコピー
は次の結果を生成します:


アウターを走ってみる..

ネストして実行してみます...
ネストされたキャッチがエラーをキャッチしました
ついに Nested が実行されました...
外側のキャッチがエラーをキャッチし、再スローされました
アウターがついに走り出す

以下は Javascript の例外処理の例です。

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");
}

ログイン後にコピー

プログラム実行プロセス

1. array[0] を使用すると配列 array が作成されないため、プログラム内で array[0] を呼び出すと object is null 例外が生成されます。 2. catch(err) ステートメントはこの例外をキャプチャし、err.name を通じてエラーの種類を出力し、err.message はエラーの詳細を出力します。 3.finallyはjavaのfinallyと似ており、例外があるかどうかに関係なく実行されます。

次に、Error.name の 6 つの値に対応する情報を要約します:


1. EvalError: eval() の使用は定義

と矛盾します。 2. RangeError: 値が範囲外です

3. ReferenceError: 不正または認識できない参照値
4. SyntaxError: 構文解析エラーが発生しました
5. TypeError: オペランドの型が間違っています
6. URIError: URI 処理関数
の不適切な使用

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート