Danh mục

Bài giảng Lập trình Java cơ bản: Chương 3 Ngoại lệ - GV. Võ Hoàng Phương Dung

Số trang: 18      Loại file: pdf      Dung lượng: 255.76 KB      Lượt xem: 12      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 3 Ngoại lệ thuộc bài giảng lập trình Java cơ bản, cùng nắm kiến thức trong chương này thông qua việc tìm hiểu các nội dung chính sau: đị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.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Java cơ bản: Chương 3 Ngoại lệ - GV. Võ Hoàng Phương DungLẬP TRÌNH JAVA Chương 3 NGOẠI LỆ GV: Võ Hoàng Phương 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 2/25 Định nghĩa ngoại lệ 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ư các method gây ra ngoại lệ, dòng code xảy ra ngoại lệ. 3/25Định nghĩa ngoại lệ 4/25 Định nghĩa ngoại lệ 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. 5/25 Bắt giữ & xử lý ngoại lệ 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 } 6/25 Bắt giữ & xử lý ngoại lệ 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 7/25 Bắt giữ & xử lý ngoại lệ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);} } 8/25}Bắt giữ & xử lý ngoại lệ 9/25 Chuyển tiếp ngoại lệ 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 10/25 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){ if(i==0) throw new ArithmeticException(); else System.out.println(num/i); }} 11/25 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) throwsArithmeticException{ System.out.println(num/i); }} 12/25 Chuyển tiếp ngoại lệ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();} 13/25 Các loại Exception 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) 14/25 Các loại Exception Ví dụ về ngoại lệ cần được kiểm traInputStreamReader reader;BufferedReader bufReader;reader = new InputStreamReader(System.in);bufReader = new BufferedReader(reader);try {String s = bufReader.readLine();}catch (IOException e) {...} ...

Tài liệu được xem nhiều: