Rumah > hujung hadapan web > tutorial js > Cuba gunakan tangkapan dalam kemahiran javascript_javascript

Cuba gunakan tangkapan dalam kemahiran javascript_javascript

WBOY
Lepaskan: 2016-05-16 15:44:45
asal
1367 orang telah melayarinya

Mari kita lihat contoh dahulu

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

Salin selepas log masuk

Nota:

Perbezaan antara addEventListener dan attachEvent ialah parameter pertama yang pertama ialah klik dan yang kedua ialah onclick

addEventListener berjalan dalam skop elemen elemennya

attachEvent berjalan dalam skop global (this=window)

Cuba...Tangkap kenyataan

cuba...tangkap boleh menguji ralat dalam kod anda. Bahagian cuba mengandungi kod yang perlu dijalankan, manakala bahagian tangkapan mengandungi kod yang dijalankan apabila ralat berlaku.
Sintaks:

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

Salin selepas log masuk

Nota: gunakan huruf kecil untuk mencuba...tangkap. Huruf besar akan menjadi salah.

cuba...tangkap...akhirnya kenyataan

Laksanakan pengendalian ralat untuk JScript . 

  try  {  
     tryStatements}  
  catch(exception){  
     catchStatements}  
  finally  {  
     finallyStatements}  
Salin selepas log masuk

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

Parameter

tryStatement

Pilihan yang diperlukan. Pernyataan yang salah mungkin berlaku.     
pengecualian
Pilihan yang diperlukan. sebarang nama pembolehubah. Nilai permulaan pengecualian ialah nilai ralat yang dilemparkan.     
catchStatement
Pilihan. Pernyataan yang mengendalikan ralat yang berlaku dalam tryStatement yang berkaitan.     
akhirnyaPenyata
Pilihan. Pernyataan yang dilaksanakan tanpa syarat selepas semua proses lain berlaku.       

Penerangan

Pernyataan cuba...tangkap...akhirnya menyediakan cara untuk mengendalikan beberapa atau semua ralat yang mungkin berlaku dalam blok kod tertentu sambil mengekalkan kod berjalan. Jika ralat berlaku yang tidak dikendalikan oleh pengaturcara, JScript hanya menyediakan mesej ralat biasa kepada pengguna, seolah-olah tiada pengendalian ralat. 


Parameter

tryStatements mengandungi kod untuk kemungkinan ralat, manakala catchStatement mengandungi kod untuk mengendalikan sebarang ralat yang berlaku. Jika ralat berlaku dalam tryStatements , kawalan program diserahkan kepada catchStatements untuk diproses. Nilai permulaan pengecualian ialah nilai ralat yang berlaku dalam tryStatements . Jika ralat tidak berlaku, catchStatements tidak dilaksanakan. 


Jika ralat tidak dapat dikendalikan dalam catchStatements yang dikaitkan dengan tryStatements tempat ralat berlaku, gunakan pernyataan lontaran untuk menyebarkan atau membuang semula ralat kepada pengendali ralat peringkat lebih tinggi. 


Selepas pernyataan dalam tryStatements dilaksanakan dan semua pengendalian ralat dalam catchStatements berlaku, pernyataan dalam finallyStatements boleh dilaksanakan tanpa syarat. 


Sila ambil perhatian bahawa walaupun pernyataan dikembalikan dalam blok try atau catch, atau ralat dilemparkan semula dalam blok tangkapan, pengekodan finallyStatements masih akan dilaksanakan. Secara amnya akan memastikan bahawa finallyStatments berjalan melainkan terdapat ralat yang tidak dikendalikan. (Sebagai contoh, ralat masa jalan berlaku dalam blok tangkapan.).

Contoh


Contoh berikut menggambarkan cara pengendalian kes khas JScript dilakukan. 


  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);  
  }  
Salin selepas log masuk
akan menghasilkan keputusan berikut:


Cuba lari luar..

Bersarang cuba lari...
Tangkapan bersarang yang ditangkap mendapat ralat
Nested akhirnya berjalan...
Tangkapan luar yang ditangkap mendapat ralat yang dilemparkan semula
Luar akhirnya berjalan

Berikut ialah contoh pengendalian pengecualian 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");
}

Salin selepas log masuk

Proses pelaksanaan program

1. Memandangkan tatasusunan tidak dibuat apabila tatasusunan[0] digunakan, tatasusunan ialah objek kosong yang memanggil tatasusunan[0] dalam atur cara akan menghasilkan objek adalah pengecualian nol
2. Pernyataan catch(err) menangkap pengecualian ini dan mencetak jenis ralat melalui err.name dan err.message mencetak butiran ralat
3. akhirnya serupa dengan java akhirnya, ia akan dilaksanakan tanpa mengira sama ada terdapat pengecualian atau tidak.

Sekarang ringkaskan maklumat yang sepadan dengan enam nilai ​​​​Error.name:

1. EvalError: Penggunaan eval() tidak konsisten dengan definisi
2. RangeError: Nilai di luar sempadan
3. ReferenceError: Nilai rujukan yang tidak sah atau tidak diiktiraf
4. SyntaxError: Ralat penghuraian sintaks berlaku
5. TypeError: Jenis operan salah
6. Ralat URI: Penggunaan fungsi pemprosesan URI yang tidak betul

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan