Lệnh try...catch...finally
Phiên bản mới nhất của JavaScript thêm khả năng xử lý lỗi chạy chương
trình. JavaScript thực hiện chỉ lệnh try…catch…finally cũng như toán
tử throw để xử lý các Runtime Error.
Bạn có thể catch các Runtime Error nhưng bạn không thể catch các lỗi cú
pháp (Syntax Error).
Cú pháp khối try...catch...finally như sau:
<script type="text/javascript"><!--try {// Code to run[break;]} catch ( e ) {//
Code to run if an exception occurs[break;]}[ finally {// Code that is always
executed regardless of // an exception occurring}]//--></script>
Khối try phải được theo sau bởi hoặc một khối catch hoặc một
khối finally (hoặc một trong hai) một cách chính xác. Khi một Runtime Error
xảy ra trong khối try, lỗi này được đặt trong e và khối catch được thực thi.
Khối finally tùy ý thực thi vô điều kiện sau try/catch.
Ví dụ
Dưới đây là một ví dụ mà chúng tôi cố gắng gọi một hàm không tồn tại mà
tạo Runtime Error. Chúng ta xem cách nó thực thi mà không sử
dụng try...catch:
<html><head><script type="text/javascript"><!--function myFunc(){var a =
100;alert("Value of variable a is : " + a
);}//--></script></head><body><p>Click the following to see the
result:</p><form><input type="button" value="Click Me"
onclick="myFunc();" /></form></body></html>
Kết quả
Chạy theo lệnh trên để xem kết quả
Bây giờ chúng ta cố gắng nắm bắt lỗi này bởi sử dụng try…catch và hiển thị
một thông báo thân thiện với người dùng (user-fiendly). Bạn cũng có thể bỏ
thông báo này, nếu bạn muốn ẩn lỗi này, không hiển thị nó với người dùng.
<html><head><script type="text/javascript"><!--function myFunc(){var a =
100;try {alert("Value of variable a is : " + a );} catch ( e ) {alert("Error: " +
e.description );}}//--></script></head><body><p>Click the following to see
the result:</p><form><input type="button" value="Click Me"
onclick="myFunc();" /></form></body></html>
Kết quả
Chạy theo lệnh trên để xem kết quả