Sử dụng ngoại lệ trong Javascript

Giới thiệu nội dung bài viết

Trong quá trình lập trình web, chắc hẳn sẽ có những lúc chương trình bạn làm ra bị dừng lại vì xảy ra lỗi trong code mình làm. Những lỗi này được gọi là Ngoại lệ (Exception) trong JavaScript.

Trong bài viết hôm nay anh sẽ chia sẻ cho các bạn những ngoại lệ (Exception) thường xảy ra khi lập trình web với JavaScript như lỗi cú pháp, runtime error hay sai về logic. Cũng như cùng tìm hiểu về những đối tượng Error trong JavaScript gồm những gì? Nắm được những lỗi thường gặp này để các bạn sẽ chú ý hơn khi lập trình web và sau này khi xảy ra các lỗi thì sẽ biết do đâu để tìm cách khắc phục. Đồng thời trong những chia sẻ tiếp theo anh sẽ hướng dẫn cho các bạn các cách để bắt các ngoại lệ như sử dụng khối lệnh try-catch hay sử dụng throw ném ngoại lệ. Cuối cùng anh sẽ trình bày về khối lệnh finally trong JavaScript, đây là khối lệnh luôn chạy các dòng code cho dù có ngoại lệ hay không.

1. Ngoại lệ là gì

Trong quá trình lập trình với Javascript sẽ có những lúc code mình không chạy như mình mong muốn và nó quăng ra lỗi làm cho chương trình mình dừng lại. Các lỗi đó mình gọi là ngoại lệ (Exception). Khi lập trình thì mình sẽ sử dụng các từ khoá try catch để mình bắt lại ngoại lệ xử lý để chương trình tiếp tục chạy.

Có 3 loại ngoại lệ thường xảy ra khi mình lập trình Javascript. Mình sẽ gặp lỗi cú pháp khi gõ sai cú pháp (Syntax Error) thì sẽ bị gặp lỗi. Hoặc trong quá trình chương trình mình chạy gặp lỗi thì gọi là Runtime Error. Hoặc mình bị sai về logic.

2. Đối tượng Error

Khi chương trình chạy bị lỗi nó sẽ ném ra đối tượng là Error cho mình. Trong đối tượng Error có 2 thuộc tính là name (tên của lỗi) và message (nội dung của lỗi). Chúng ta sử dụng try catch để bắt lại đối tượng Error này. Tuỳ vào message (nội dung) của lỗi là gì mà chúng ta xử lý.

3. Sử dụng khối lệnh try-catch để bắt ngoại lệ

  • Cú pháp
1
2
3
4
5
6
7
8
9
10
<script>

    try{  
        code chương trình; 
    } //code to be written.  
    catch(error){  
       bắt lỗi  xử  lỗi nếu  khi chạy code chương trình; 
    } // code for handling the error

</script>
  • Ví dụ
1
2
3
4
5
6
7
8
9
<script>
try{
    var a= ["34","32","5","31","24","44","67"]; //a is an array
    document.write(a);    // displays elements of a
    document.write(b); //b is undefined but still trying to fetch its value. Thus catch block will be invoked
}catch(e){
    alert("There is error which shows "+e.message); //Handling error
}
</script>
  • Chúng ta sử dụng e.message để lấy thông báo lỗi (e là đại diện cho Error)

4. Sử dụng Throw ném ngoại lệ

Sẽ có những trường hợp trong function của mình muốn ném ra một ngoại lệ để các function khác khi gọi nó có thể bắt ngoại lệ và xử lý tiếp. Để function ném ra ngoại lệ thì ta dùng từ khoá Throw

  • Cú pháp
1
2
3
4
5
    try{  
        throw exception; // user can define their own exception  
    }catch(error){  
        expression; 
    }  // code for handling exception.
  • Ví dụ
1
2
3
4
5
6
7
8
<script>  
try {  
   throw new Error('This is the throw keyword'); //user-defined throw statement.  
}  
catch (e) {  
  document.write(e.message); // This will generate an error message  
}  
</script>

5. Khối lệnh finally

Khối lệnh finally là trường hợp đặc biệt ta có thể dùng hoặc không dùng chung với try catch. Khối lệnh finally luôn luôn chạy các dòng code trong nó dù ngoại lệ có được ném ra hay không.

  • Cú pháp
1
2
3
4
5
6
7
8
9
10
11
12
<script>  

    try{  
        expression;  
    }  
    catch(error){  
         expression;  
    }  
    finally{  
        expression; 
    } //Executable code  
</script>
  • Ví dụ
1
2
3
4
5
6
7
8
9
10
11
<script>  
    try{  
        var a=2;  
        if(a==2)  
        document.write("ok");  
    } catch(Error){  
        document.write("Error found"+e.message);  
    }  finally{  
        document.write("Value of a is 2 ");  
    }  
</script>

Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm

Các khoá học lập trình MIỄN PHÍ tại đây


Comments