Xử lý ngoại lệ trong java

     
*

package org.o7planning.tutorial.exception;public class HelloCatchException public static void main(String<> args) System.out.println("Three");// Phép phân chia này trọn vẹn không tất cả vấn đề.int value = 10 / 2;System.out.println("Two");// Phép phân tách này cũng vậy.value = 10 / 1;System.out.println("One");try // Phép chia này còn có vấn đề, chia cho 0.// Một lỗi đã xẩy ra tại đây.value = 10 / 0;// dòng code này sẽ không còn được thực thi.System.out.println("Value =" + value); catch (ArithmeticException e) // những dòng code trong catch được thực thi.System.out.println("Error: " + e.getMessage());// những dòng code vào catch được thực thi.System.out.println("Ignore...");// loại code này sẽ được thực thi.System.out.println("Let"s go!");
Chúng ta sẽ phân tích và lý giải bằng hình minh họa dưới đây về luồng đi của chương trình.Các cách (1)-(5) trọn vẹn bình thường.Ngoại lệ xẩy ra tại cách (6), sự việc chia mang đến 0.Lập tức nó nhẩy vào triển khai lệnh vào khối catch, cách (7) bị quăng quật qua.Bước (8),(9) được thực hiện.Bước (10) được thực hiện.

Bạn đang xem: Xử lý ngoại lệ trong java


*

Đây là mô hình sơ đồ gia dụng phân cấp cho của Exception vào java.Class ở mức tối đa là ThrowableHai class bé trực tiếp là Error Exception.Trong nhánh Exception có một nhánh bé RuntimeException là các ngoại lệ sẽ không còn được java kiểm tra trong thời hạn biên dịch.Ý nghĩa của được soát sổ và ko được soát sổ tại thời gian biên dịch sẽ được minh họa trong những ví dụ phần sau.
Chú ý: các class tùy biến của bạn nên viết thừa kế trường đoản cú 2 nhánh Error hoặc Exception, ko viết vượt kế thẳng từ Throwable.
*

Khi link động thất bại, hoặc trong sản phẩm công nghệ ảo xẩy ra một vấn đề nghiêm trọng, nó đã ném ra một Error. Những chương trình Java điển hình không đề xuất bắt lỗi (Error). Ngoài ra, nó không chắc hẳn rằng các công tác Java nổi bật sẽ lúc nào ném lỗi
Ví dụ về link động: Chẳng hạn, khi chúng ta gọi đến thư viện cơ mà thư viện kia thiếu class, hoặc thiếu thốn method,... Vào trường thích hợp vậy Error sẽ ảnh hưởng ném ra.

Xem thêm: Ra Mắt Các Trang Phục Bard Ngày Tuyết Rơi Ra Mắt Năm Nào, Trang Phục Bard Ngày Tuyết Rơi


Hầu hết các chương trình ném với bắt các đối tượng người sử dụng là con của class Exception. Trường hợp Exception cho biết một vấn đề xảy ra nhưng vụ việc không phải là 1 trong những vấn đề mang tính khối hệ thống nghiêm trọng. Hầu hết các chương trình chúng ta viết sẽ ném cùng bắt Exception. Class Exception có tương đối nhiều class nhỏ cháu được khái niệm trong gói Java. Hầu như hậu duệ đến nhiều loại hình trường thích hợp ngoại lệ hoàn toàn có thể xảy ra. Ví dụ, NegativeArraySizeException được ném ra khi bạn nỗ lực tạo một mảng (array) và lại có số bộ phận âm. Một class nước ngoài lệ bé có chân thành và ý nghĩa đặc biệt trong ngôn từ Java: RuntimeException.
Class RuntimeException đại diện mang đến trường thích hợp ngoại lệ xẩy ra trong thời gian chạy chương trình. Một lấy ví dụ về một ngoại lệ thời hạn chạy là NullPointerException, xẩy ra khi một bạn truy vấn vào method hoặc field một đối tượng thông sang 1 tham chiếu null. Với những ngoại lệ vẻ bên ngoài này người ta thường bình chọn để bảo đảm rằng đối tượng này không giống null, rộng là tìm kiếm bắt nước ngoài lệ.
Bởi vì trường thích hợp ngoại lệ thời hạn chạy rất thịnh hành và cố gắng bắt hoặc chỉ định tất cả chúng là biện pháp làm ko hiệu quả. Trình biên dịch của Java ko kiểm tra các ngoại lệ này trong quy trình biên dịch code.

Xem thêm: Trắc Nghiệm Công Nghệ 10 Bài 27, (Có Đáp Án)


Java quan niệm một vài lớp RuntimeException. Bạn có thể bắt (Catch) phần lớn trường đúng theo ngoại lệ này như cách bắt các ngoại lệ thông thường khác. Các method nhưng trong nó hoàn toàn có thể ném ra RuntimeException cũng không đòi hỏi phải khai báo trên tư tưởng của nó. Kế bên ra, bạn có thể tạo lớp bé RuntimeException của riêng bạn.
*