... 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ã lệnh ... 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à ngoại lệ
•...
... "main" java. lang.ArithmeticException: / by zero
at MyDivision.C(MyDivision .java: 14 )
at MyDivision.B(MyDivision .java: 11 )
at MyDivision.A(MyDivision .java: 8)
at MyDivision.main(MyDivision .java: 4)
Giải ... chưa tồn tại… thì các
ngoại lệ sẽ được ném ra. Chương trình
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 đ...
... dùng nhập lại.
31
Chú ý khi sử 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.
• ... sử 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...
... 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 lệ...
... Nút nhấn (Button)
25
import java. applet.Applet;
import java. awt.*;
import java. awt.event.*;
public class DemoButton extends Applet implements ActionListener
{
private ... 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( ... Button("Hell...
...
Lập trình Java cơ bản
1
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn
, tmtuan@ifi.edu.vn
Ví d : Applet tính tổng 2 số
6
• Giải thích applet
• TextField và Button là các lớp thuộc gói
java. awt
• ... d : Applet tính tổng 2 số
5
• Demo
// phuong thuc nay duoc goi khi ve lai cua so
public void paint(Graphics g)
{
int num1, num2, sum;
String s1 = txtNum1.getText();
num1 =...
...
• 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, ... phai
FlowLayout layout = new FlowLayout(FlowLayout.RIGHT);
setLayout(layout);
add(new TextField (15 ));
add(new Button(“Press me”));
}
Lớp FlowLayout
55
• Các thành phần được đưa vào từ trái
sang...
... 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 ... mouseClicked(MouseEvent e)
{
if (numRects < MAX_RECT)
{
rects[numRects++]=new Rectangle(e.getX(), e.getY(), 10 , 10 );
repaint();
}
}
// Can cai dat tat ca cac phuong thuc cua giao ti...