Cách dùng khối try-catch để bắt ngoại lệ

0
481
This entry is part 17 of 29 in the series Tự học lập trình Java

Cách bắt ngoại lệ trong java ? Bài viết hôm nay mình sẽ hướng dẫn các bạn cách bắt một ngoại lệ bằng khối try – catch.

Cách dùng khối try – catch

Khối try / catch được đặt xung quanh một đoạn chương trình dễ phát sinh ngoại lệ, cùng xem cú pháp

Khối lệnh 1: Là khối lệnh dễ phát sinh ra ngoại lệ. Khi một ngoại lệ xảy ra ngoại lệ đó phải được xử lý trong khối catch liên kết với nó.

Mình xin 5 phút quảng cáo nha =))

Ngoại lệ 1: Là tên của ngoại lệ mà bạn muốn bắt trong khối lệnh 1.

Ví dụ về bắt ngoại lệ bằng khối try – catch

Ta sẽ tạo một mảng 2 phần tử và sau đó cố gắng truy cập vào phần tử thứ 3. Khi đó chương trình sẽ ném ra một ngoại lệ ArrayIndexOutOfBoundsException.

Sau khi chạy chương trình trên sẽ ra kết quả

Lưu ý: Các bạn có thể bắt ngoại lệ một cách tổng quát bằng cách dùng Exception .

Nhiều catch blocks

Một khối try có thể được theo sau bởi nhiều khối catch. Cùng xem cách khai báo

Ở đây mình trình bày hai khối catch nhưng bạn có thể tạo ra nhiều khối catch hơn. Nếu một ngoại lệ xảy ra trong khối try, ngoại lệ sẽ được ném vào trong khối catch thứ nhất. Nếu kiểu dữ liệu của ngoại lệ bị ném ra khớp với ngoại_lệ_1 thì nó sẽ được bắt tại đây. Nếu ngoại lệ sẽ được chuyển đến khối thứ hai. Việc này cứ tiếp tục đến khi ngoại lệ bị bắt bởi một khối catch hoặc ngoại lệ đi qua hết các khối catch.

Ví dụ

Đây là đoạn mã hiển thị cách sử dụng khối try – catch với nhiều catch blocks.

Sau khi chạy sẽ nhận được kết quả

Khối finally

Khối finally là khối cuối cùng theo sau khối try. Một khối finally luôn luôn chạy cho dù có xảy ra ngoại lệ hay không. Thường dùng khối finally để đóng các tệp, hay dọn dẹp tài nguyên.

Cùng xem ví dụ về cách sử dụng khối finally

Sau khi chạy

Một số lưu ý khi dùng khối try – catch – finally
  • Đối với khối try có thể có nhiều khối catch hoặc không có. Nhưng khối finally thì chỉ có một.
  • Khối finally sẽ không được thực thi nếu chương trình bị thoát (bằng cách gọi System.exit() hoặc xảy ra một lỗi không thể tránh khiến chương trình bị chết
  • Tất cả các khối catch phải được sắp xếp từ cụ thể nhất đến chung nhất.

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

 

Series Navigation<< Ngoại lệ trong javaPhân biệt throws và throw trong java >>
avatar
  Subscribe  
Notify of