1. Trang chủ
  2. » Công Nghệ Thông Tin

SLIDE GIẢNG DẠY - NGÔN NGỮ LẬP TRÌNH JAVA - CHƯƠNG 4 - NGOẠI LỆ

18 336 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 18
Dung lượng 256,5 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...  Ví dụ: đọc 1 file không tồn tại  Lớp Exception • Là lớp

Trang 1

LẬP TRÌNH JAVA

Chương 3

NGOẠI LỆ

GV: Võ Hoàng Phương Dung

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

 Ví dụ: đọc 1 file không tồn tại

Lớp Exception

• Là lớp cha cho tất cả các lớp thể hiện ngoại lệ

• 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 nghĩa ngoại lệ

Trang 4

Định nghĩa ngoại lệ

Trang 5

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 6

 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

}

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

Trang 7

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 8

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 9

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

Trang 10

 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

Chuyển tiếp ngoại lệ

Trang 11

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();

Chuyển tiếp ngoại lệ

Trang 12

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 13

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 14

 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 15

 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 16

 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 17

 Ví dụ

public class MyException extends Exception

{

public MyException () {

} public MyException (String msg) {

super (msg);

} }

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

Trang 18

 Ư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: 29/06/2017, 22:56

TỪ KHÓA LIÊN QUAN