...
dừng lại ngay lập tức, toàn bộ phần
mã phía sau sẽ không được thực thi.
• Java hỗ trợ cách thức để xử lý ngoại lệ
(exception handling) tuỳ theo nhu cầu
của chương trình.
8
Ví dụ 2
public class ... thực thi ví dụ 2
Goi phuong thuc A()
Exception in thread "main" java. lang.ArithmeticException: / by zero
at MyDivision.C(MyDivision .java: 14)
at MyDivision.B(MyDiv...
... 2
Bài 6. Xử lý ngoại lệ
• Xử lý lỗi và ngoại lệ
• Khối try/catch/finally
• Các lớp ngoại lệ
• Xây dựng lớp ngoại lệ
• Lan truyền ngoại lệ
• Tung lại ngoại lệ
• Bài tập
4
Xử lý lỗi và ngoại lệ
Mã ... phải xử lý lỗi
mà A trả về.
1
Lập trình Java cơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
3
Xử lý lỗi v...
... dụng ngoại lệ
• Không nên sử dụng ngoại lệ thay cho các
luồng điều khiển trong chương trình.
• Ví d : Kiểm tra delta trong chương trình giải
phương trình bậc 2.
• Nên thiết kế và sử dụng ngoại ... dụng ngoại lệ một
cách thống nhất cho toàn bộ dự án.
• Một số xử lý lỗi bằng ngoại lệ phổ biến
l : hết bộ nhớ, vượt quá chỉ số mảng,
con trỏ null, chia cho 0...
... không xử lý thì
phải xử lý ngoại lệ này trong A()…Quá trình này gọi là lan truyền
ngoại lệ.
Nếu đến main() cũng không xử lý ngoại lệ được tung từ C() thì
chương trình sẽ phải dừng lại.
26
Ngoại ... {
System.out.println(e.getMessage());
}
}
}
29
Lan truyền ngoại lệ
C()
B()
A()
main()
B()
A()
main()
C() tung ngoại lệ
Nếu C() gặp lỗi và tung ra ngoại...
... {
System.out.println(“Error: “ + e.getMessage());
}
try {
A();
} catch (Exception e) {
System.out.println(“Co loi trong A()”);
}
• Ví dụ 2:
• Ví dụ 3:
15
Khối finally
• Khi một ngoại lệ xảy ra, chương trình dừng ... Khối finally đảm bảo rằng các câu lệnh trong
đó luôn được thực hiện, kể cả khi ngoại lệ
xảy ra.
try
{
doSomething(); // phương thức này có thể gây ra ngoại l...
... Nút nhấn (Button)
25
import java. applet.Applet;
import java. awt.*;
import java. awt.event.*;
public class DemoButton extends Applet implements ... is valid");
else
txtReadOnly.setText("Invalid password !");
}
}
Ô vănbản (TextField)
28
• Ô văn bản cho phép nhậndữ liệutừ
bàn phím trên một dòng
• Một số phương thức
• TextField( ... kí tự hiển thị
• Đối tượng nghe cần cà...
...
• Chú : Khi add một component theo
BorderLayout cần chỉ rõ vùng, nếu không
component sẽ không được hiển thị.
Lớp BorderLayout
57
• BorderLayout sắp xếp các thành phần
theo 5 vùng: EAST, ... Button("two");
b [2] = new Button("three");
b[3] = new Button("four");
b[4] = new Button("five");
b[5] = new Button("six");
setLayout( new GridLayou...
... lớp
53
• Bài 1: Viết một applet thực hiện công việc
sau: khi chuột được di chuyển vào applet thì
thông báo Hello Mouse, khi ra khỏi applet
thì thông báo Goodbye Mouse
• Bài 2: Viết một applet ... keyReleased(KeyEvent e);
• Chú : Có thể sử dụng KeyAdapter thay cho
dùng giao tiếp KeyListener
Bộ quảnlýbố cục(Layout manager)
54
• Java cung cấp sẵn các lớp hỗ trợ trình
bày các thà...
... mộttrongsốđó.
• Java cung cấpmộtsố lớp đãcàiđặtsẵn
những phương thứcnày gọi là các lớp
Adapter). Ta chỉ cầnthừakế, cài đặt
phương thứccầnthiết. Các lớpadapter
cũng nằm trong gói java. awt.event
Các ... i++)
g.fillRect(rects[i].x, rects[i].y, rects[i].width, rects[i].height);
}
Các sự kiệnchuột
43
• Để quản lý các sự kiện chuột cầncài
đặtgiaotiếp
• MouseListener
• MouseMotionListener
•...
... new CheckboxGroup();
Checkbox radio1 = new Checkbox(“Radio1”, g, true);
Checkbox radio2 = new Checkbox(“Radio2”, g, false);
Checkbox radio3 = new Checkbox(“Radio3”, g, false);
Checkbox và CheckboxGroup
39
add(txtText);
add(plain);
add(italic);
add(bold);
}
public ... CheckboxGroup
37
• Các Checkbox có thể được đặt trong
một CheckboxGroup để tạo ra các
radio button.
• Ví d : Tạo 3 radio b...