Sử dụng ngoại lệ được kiểm soỏt

Một phần của tài liệu Bài giảng ngôn ngữ lập trình Java doc (Trang 91 - 92)

Trong phần trờn đó bàn về cỏch sử dụng cỏc exception để bắt cỏc lỗi khụng được kiểm soỏt. Trong phần này chỳng ta sẽ xem cỏch sử dụng ngoại lệ để quản lý cỏc tỡnh huống cú thể kiểm soỏt được.

Cỏc ngoại lệ dạng này được khai bỏo ở phần đầu cỏc phương thức. Vớ dụ trong phương thức khởi tạo sau:

public FileInputStream(String name) throws FileNotFoundException

Ở đõy phương thức nhận một tham số kiểu String như là tờn file, tuy nhiờn rất cú thể file khụng tồm tại hoặc là một file rỗng và khụng cú gỡ để đọc. Khi gặp lỗi như vậy, chương trỡnh sẽ tỡm tới vị trớ định nghĩa để quản lý lỗi này.

Một vấn đề là lập trỡnh viờn khụng biết throws ra ngoại lệ nào hoặc khụng thể khai bỏo hết tất cả cỏc ngoại lệ. Tuy nhiờn, cú 4 tỡnh huống để đưa ra ngoại lệ:

• Khi gọi một phương thức cú throw một ngoại lệ, chẳng hạn như FileInputStream. • Khi ta xỏc định được một lỗi và throws một exception bằng một lệnh throw

• Khi viết một chương trỡnh bị lỗi, chẳng hạn a[-1] = 0, sẽ dẫn đến việc kớch hoạt một ngoại lệ, chẳng hạn ở đõy là ArrayIndexOutOfBoundsException.

• Khi một lỗi bờn trong hệ thống như trong JVM hoặc cỏc thư viện động. Một phương thức cần khai bỏo ngoại lệ phự hợp:

class MyAnimation {

. . .

public Image loadImage(String s) throws IOException {

. . . } }

Phương thức cú thể throws nhiều ngoại lệ nếu cần:

class MyAnimation {

. . .

public Image loadImage(String s) throws EOFException, MalformedURLException {

. . . } }

Cỏc ngoại lệ bắt lỗi nội bộ của Java thường khụng nờn được khai bỏo, đú là cỏc ngoại lệ kế thừa từ lớp Error vỡ chỳng vượt khỏi tầm kiểm soỏt của chỳng ta. Đối với cỏc ngoại lệ khụng được kiểm soỏt, chỳng kế thừa từ lớp RuntimeException cũng vậy, ta khụng nờn khai bỏo chỳng. Vớ dụ:

class MyAnimation {

. . .

void drawImage(int i) throws ArrayIndexOutOfBoundsException // Khụng phự hợp {

. . . } }

Đối với cỏc ngoại lệ dạng RuntimeException, nếu chỳng ta cú kế hoạch để khai bỏo nú thỡ tốt nhất là tỡm cỏch để khắc phục khụng cho chỳng xảy ra.

Một phần của tài liệu Bài giảng ngôn ngữ lập trình Java doc (Trang 91 - 92)