1. Trang chủ
  2. » Cao đẳng - Đại học

SLIDE MÔN JAVA - CHƯƠNG 4 - NGOẠI LỆ

19 279 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 263 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung Định nghĩa ngoại lệ Exception  Bắt giữ & xử lý ngoại lệ  Chuyển tiếp Ném ngoại lệ  Định nghĩa lớp Ngoại lệ mới...  Khi đối tượng ngoại lệ phát sinh, nó thuộc các lớp đặc th

Trang 1

LẬP TRÌNH JAVA

Chương 4

NGOẠI LỆ

GV: Đoàn Thanh Sơn

Trang 2

Nội dung

 Định nghĩa ngoại lệ (Exception)

 Bắt giữ & xử lý ngoại lệ

 Chuyển tiếp (Ném) ngoại lệ

 Định nghĩa lớp Ngoại lệ mới

Trang 3

 Ngoại lệ (Exception): là sự kiện xuất hiện trong quá trình thực thi của chương trình và gây phá vỡ dòng thực thi của chương trình.

 Có các nhóm ngoại lệ sau:

- Checked: đọc 1 file không tồn tại Lúc dịch java sẽ yêu

cầu phải bắt ngoại lệ.

- Runtime: chia số 0 Lúc dịch java không kiểm tra Nhưng

LTV cần tiên đoán và tự bắt ngoại lệ.

- Errors: stack overflow Ngoài kiểm soát của java và LTV Lúc dịch java không yêu cầu kiểm tra CT không khôi

phục được.

Định nghĩa ngoại lệ

Trang 4

Định nghĩa ngoại lệ

Trang 5

 Khi đối tượng ngoại lệ phát sinh, nó thuộc các lớp đặc thù

nhưng đều thừa kế từ gốc là lớp Exception

Lớp Exception 

2 phương thức thông dụng trong lớp Exception. 

 toString(): Trả về một chuỗi mô tả về Ngoại lệ. 

 printStackTrace(): In ra thông tin chi tiết về Ngoại lệ, như các method gây ra ngoại lệ, dòng code xảy ra ngoại

lệ. 

Định nghĩa ngoại lệ

Trang 6

Một số lớp ngoại lệ đặc thù gồm:

ArithmeticException: xảy ra khi Chương trình có các

lỗi đại số VD: Chia cho 0. 

NumberFormatException: Xảy ra khi thực hiện

chuyển đổi chuỗi không hợp lệ sang kiểu số. 

NullPointerException: Xảy ra khi một đối tượng chưa

được khởi tạo mà đã truy cập đến thành phần của đối

tượng đó. 

ArrayIndexOutOfBoundException: Xảy ra khi truy

cập đến phần tử của mảng có chỉ số bé hơn không hoặc hoặc lớn hơn kích thước của mảng. 

Định nghĩa ngoại lệ

Trang 7

 Cú pháp

try {

// Khối code gây ra ngoại lệ

}

catch(ExceptionType name) {

// Khối code xử lý ngoại lệ

}

catch(ExceptionType name) {…}

finally{

// Khối code giải phóng tài nguyên

}

1.Bắt giữ & xử lý ngoại lệ

Trang 8

Khối try đi kèm ít nhất 1 khối catch hoặc finally

Có thể có nhiều khối catch sau 1 khối try

Khối finally luôn được thực hiện

Nhiều khối try … catch có thể lồng nhau

Bắt giữ & xử lý ngoại lệ

Trang 9

public class MyException {

public static void main(String args[]){

calculate(9,0);

}

public static void calculate(int num, int i){

try{

System.out.println(num/i);

}catch(ArithmeticException e){

System.out.println("error");

}

finally{ System.out.println("finished");}

}

}

Bắt giữ & xử lý ngoại lệ

Trang 10

Bắt giữ & xử lý ngoại lệ

Trang 11

 Ngoại lệ được chuyển đến các phương thức gọi, cho đến khi

một bộ quản lý ngoại lệ được tìm thấy, hoặc kết thúc

throw: Dùng để ném ra một ngoại lệ mà không xử lý trong

phương thức. 

throws: Dùng đế khai báo danh sách các ngoại lệ mà phương

thức có thể ném ra

2.Chuyển tiếp ngoại lệ

Trang 12

public class MyException {

public static void main(String args[]){

try{

calculate(9,0);

}catch(ArithmeticException e){

System.out.println("error");

}finally{

System.out.println("finished");

} }

public static void calculate(int num, int i){

if(i==0) throw new ArithmeticException();

else System.out.println(num/i);

Chuyển tiếp ngoại lệ

Trang 13

Chuyển tiếp ngoại lệ

public class MyException {

public static void main(String args[]){

try{

calculate(9,0);

}catch(ArithmeticException e){

System.out.println("error");

}finally{

System.out.println("finished");

} }

public static void calculate(int num, int i) throws ArithmeticException{

System.out.println(num/i);

}

Trang 14

void writeList() throws IOException,

ArrayIndexOutOfBoundsException {

PrintWriter out = new PrintWriter(new

FileWriter("OutFile.txt"));

for (int i = 0; i < SIZE; i++) {

out.println("Value at: " + i + " = "

+ vector.elementAt(i)); } out.close();

}

Chuyển tiếp ngoại lệ

Trang 15

 Có 2 loại ngoại lệ

• Cần kiểm tra: trình biên dịch luôn kiểm tra xem

chúng ta có viết code xử lý các ngoại lệ này không

 Ví dụ: IOException

• Không cần kiểm tra

 Ngoại lệ runtime (Runtime exception)

Các loại Exception

Trang 16

 Ví dụ về ngoại lệ cần được kiểm tra

InputStreamReader reader;

BufferedReader bufReader;

reader = new InputStreamReader(System.in);

bufReader = new BufferedReader(reader);

try {

String s = bufReader.readLine();

}

catch (IOException e) {

}

Các loại Exception

Trang 17

 Có thể tạo 1 lớp xử lý ngoai lệ riêng bằng cách thừa kế từ lớp Exception hoặc từ lớp con của Exception

 Cú pháp

class MyException extends Exception 

 

}

Định nghĩa lớp ngoại lệ

Trang 18

 Ví dụ

public class MyException extends Exception

{

public MyException () {

} public MyException (String msg) {

super (msg);

} }

Đinh nghĩa lớp ngoại lệ

Trang 19

 Ưu điểm của phương pháp xử lý ngoại lệ là gì?

 Khi nào nên sử dụng phương pháp

• Bắt và xử lý ngoại lệ tại chỗ: try … catch

• Ném ngoại lệ lên các lớp trên: throw,throws

Thảo luận

Ngày đăng: 23/06/2017, 20:17

TỪ KHÓA LIÊN QUAN