VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String

Xử lý Ngoại Lệ

Exception là gì? Khối lệnh try-catch Đa khối lệnh catch Khối lệnh try lồng nhau Khối lệnh finally Từ khóa throw Từ khóa throws Throw với Throws Final vs Finally vs Finalize Exception Handling với Overriding phương thức Tùy chỉnh Exception Truyền Exception cho caller
Java AWT Java Swing Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Xử lý ngoại lệ trong java


Học Java cơ bản
Khối lệnh try-catch trong java

Exception Handling trong java hay xử lý ngoại lệ trong java là một cơ chế mạnh mẽ để xử lý các lỗi runtime để có thể duy trì luồng bình thường của ứng dụng.

Trong bài này, chúng ta sẽ tìm hiểu về ngoại lệ (Exception) trong java, các kiểu ngoại lệ và sự khác biệt giữa các ngoại lệ checked và unchecked.

Nội dung chính

  • Exception là gì?
  • Exception Handling là gì?
  • Lợi thế của Exception Handling trong java
  • Hệ thống cấp bậc của các lớp ngoại lệ trong Java
  • Các kiểu của ngoại lệ
  • Sự khác nhau giữa các ngoại lệ checked và unchecked
    • 1. Checked Exception
    • 2. Unchecked Exception
    • 3. Error
  • Các kịch bản phổ biến nơi ngoại lệ có thể xảy ra
    • 1. Kịch bản ArithmeticException xảy ra
    • 2. Kịch bản NullPointerException xảy ra
    • 3. Kịch bản NumberFormatException xảy ra
    • Kịch bản ArrayIndexOutOfBoundsException xảy ra
  • Các từ khóa xử lý ngoại lệ trong java

Exception là gì?

Theo từ điển: Exception (ngoại lệ) là một tình trạng bất thường.

Trong java, ngoại lệ là một sự kiện làm gián đoạn luồng bình thường của chương trình. Nó là một đối tượng được ném ra tại runtime.


Exception Handling là gì?

Exception Handling (xử lý ngoại lệ) là một cơ chế xử lý các lỗi runtime như ClassNotFound, IO, SQL, Remote, vv


Lợi thế của Exception Handling trong java

Lợi thế cốt lõi của việc xử lý ngoại lệ là duy trì luồng bình thường của ứng dụng. Ngoại lệ thường làm gián đoạn luồng bình thường của ứng dụng đó là lý do tại sao chúng ta sử dụng xử lý ngoại lệ. Hãy xem xét kịch bản sau:

statement 1;  
statement 2;  
statement 3;  
statement 4;  
statement 5; //ngoại lệ xảy ra
statement 6;  
statement 7;  
statement 8;  
statement 9;  
statement 10;  

Giả sử có 10 câu lệnh trong chương trình của bạn và xảy ra trường hợp ngoại lệ ở câu lệnh 5, phần còn lại của chương trình sẽ không được thực thi, nghĩa là câu lệnh 6 đến 10 sẽ không chạy. Nếu chúng ta thực hiện xử lý ngoại lệ, phần còn lại của câu lệnh sẽ được thực hiện. Đó là lý do tại sao chúng ta sử dụng xử lý ngoại lệ trong java.


Hệ thống cấp bậc của các lớp ngoại lệ trong Java

exception handling trong java

Các kiểu của ngoại lệ

Có hai loại ngoại lệ chính là: checked và unchecked. Còn Sun Microsystem nói rằng có ba loại ngoại lệ:

  1. Checked Exception
  2. Unchecked Exception
  3. Error

Sự khác nhau giữa các ngoại lệ checked và unchecked

1. Checked Exception

Các lớp extends từ lớp Throwable ngoại trừ RuntimeException và Error được gọi là checked exception, ví dụ như Exception, SQLException vv. Các checked exception được kiểm tra tại compile-time.

Ví dụ: ta có hàm testCheckedException() ném ra một ngoại lệ được extends từ lớp Exception, nên khi nó được gọi ra trong hàm main, trình biên dịch sẽ check(báo lỗi) tức là trình biên dịch sẽ nói ràng hàm này có ném lỗi ra đấy phải xử lý lỗi đi.

vi du checked exception trong java

2. Unchecked Exception

Các lớp extends từ RuntimeException được gọi là unchecked exception, ví dụ: ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException,... Các ngoại lệ unchecked không được kiểm tra tại compile-time mà chúng được kiểm tra tại runtime.

Ví dụ: ta có hàm testUncheckedException() ném ra một ngoại lệ được extends từ lớp RuntimeException, nên khi nó được gọi ra trong hàm main, trình biên dịch sẽ không check (không báo lỗi). Mà khi chạy nếu có lỗi sẽ bắn ra tại runtime.

vi du unchecked exception trong java

3. Error

Error là lỗi không thể cứu chữa được, ví dụ: OutOfMemoryError, VirtualMachineError, AssertionError, vv


Các kịch bản phổ biến nơi ngoại lệ có thể xảy ra

Có một số kịch bản mà ngoại lệ unchecked có thể xảy ra. Như các trường hợp sau:

1. Kịch bản ArithmeticException xảy ra

Nếu chúng ta chia bất kỳ số nào cho số 0, xảy ra ngoại lệ ArithmeticException.

int a=50/0;//ArithmeticException

2. Kịch bản NullPointerException xảy ra

Nếu chúng ta có bất kỳ biến nào có giá trị null , thực hiện bất kỳ hoạt động nào bởi biến đó sẽ xảy ra ngoại lệ NullPointerException.

String s=null;  
System.out.println(s.length());//NullPointerException

3. Kịch bản NumberFormatException xảy ra

Sự định dạng sai của bất kỳ giá trị nào, có thể xảy ra NumberFormatException. Giả sử ta có một biến String có giá trị là các ký tự, chuyển đổi biến này thành số sẽ xảy ra NumberFormatException

String s="abc";  
int i=Integer.parseInt(s);//NumberFormatException  

Kịch bản ArrayIndexOutOfBoundsException xảy ra

Nếu bạn chèn bất kỳ giá trị nào vào index sai, sẽ xảy ra ngoại lệ ArrayIndexOutOfBoundsException như thể hiện dưới đây:

int a[]=new int[5];  
a[10]=50; //ArrayIndexOutOfBoundsException  

Các từ khóa xử lý ngoại lệ trong java

Có 5 từ khóa được sử dụng để xử lý ngoại lệ trong java, đó là:

  1. try
  2. catch
  3. finally
  4. throw
  5. throws

Chúng ta sẽ học cách sử dụng các từ khóa này trong các bài tiếp theo...


Học Java cơ bản
Khối lệnh try-catch trong java

Recent Updates

Đối tượng exception trong JSPXử lý ngoại lệ trong javaĐa khối lệnh catch trong javaException handling với overriding phương thức trong javaException tùy chỉnh trong javaKhối lệnh finally trong javaKhối lệnh try lồng nhau trong javaKhối lệnh try-catch trong javaSự khác nhau giữa final, finally và finalizeSự khác nhau giữa throw và throws trong javaTruyền Exception cho callerTừ khóa throw trong javaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml