Xemina ngoại lệ

Chia sẻ bởi Nguyễn Phúc Vĩnh | Ngày 26/04/2019 | 52

Chia sẻ tài liệu: xemina ngoại lệ thuộc Công nghệ thông tin

Nội dung tài liệu:

PHẦN I:
TÌM HIỂU NHỮNG KHÁI NIỆM CHUNG.
I/ EXCEPTION ( ngoại lệ ):
Exception là một lớp, là một đối tượng đặc biệt được tạo ra khi chương trình gặp lỗi.
Mặc dù chương trình có lỗi, nhưng khi lỗi chưa xảy ra thì chương trình vẫn chạy bình thường, ví dụ như ta thực hiện phép chia 15.0 cho biến k tiến từ -5 đến 5 có một lần qua số 0. Chương trình vẫn chạy, vẫn chia và cho kết quả khi k khác 0. Chỉ khi k = 0 chương trình mới bắt lỗi và thông báo lỗi gọi là ném biệt lệ.
Để xử lí biệt lệ ta cần viết hai khối lệnh:
- Khối try với các câu lệnh điều hành có thể gây ra biệt lệ.
- Khối catch để bắt và xử lí biệt lệ.
II/ PHƯƠNG THỨC CỦA LỚP Exception:
Lớp exception có 3 phương thức giúp ta hiểu được chi tiết của từng biệt lệ.
Bảng liệt kê các phương thức của lớp exception

Phương thức
Ý nghĩa

GetMessage
Phương thức getMessage nhận về một chuỗi là thông tim chi tiết của ngoại lệ

ToString()
Chuyển đổi đối tượng Exception thành chuỗi để xuất ra màn hình.

PrintStackTrace
Trình bày hệ thống việc gọi các phương thức cho phép dò tìm biệt lệ.


1.Ví dụ 4.40:
Thực hiện phép chia số 15 cho k tiến từ -5 đến 5 qua số 0.
Nhờ có biệt lệ mà chương trình không báo lỗi, khi k = 0 chương trình sẽ ném biệt lệ và tiếp tục thực hiện phép chia.
//nội dung chương trình
class NgoaiLe extends Thread{
public static void main(String[])ds{
double p = 0.0;
//khối try
Try{
double x = 15.0;
for(int k = -5;k<=5;k++){
p=x/k;
sleep(1000);
System.out.println(“k=”+k+”(p=x/k=”+p);}}
//khối catch
catch(Exception e){
String err = e.toString();}}}
//tệp tập tin : NgoaiLe.java
Khi chạy chương trình ta có kết quả:
k = -5 ( p=x/k=-3.0
k = -4 ( p=x/k=-3.75
k = -3 ( p=x/k=-5.0
k = -2 ( p=x/k=-7.5
k = -1 ( p=x/k=-15.0
k = 0 ( p=x/k= Infinity
k = 1 ( p=x/k=15
k = 2 ( p=x/k=7.5
k = 3 ( p=x/k=5
k = 4 ( p=x/k=3.75
k = 5 ( p=x/k=3
Chương trình hiện kết quả từ từ, cứ 1 giây thì in ra một hàng.

2.Ví dụ 4.41:

Thực hiện phép chia có mẫu biến thiên và có một giá trị bằng 0.
Cho x = 10, y = x – k với k biến thiên từ 1 đến 20, p = x/y, như vậy k = 10 thì y = 0.
Chương trình ném biệt lệ và thực hiện phép chia khi y khác 0.
//nội dung chương trình.
Class ngoaiLeB extends Thread{
Public static void main(String[]ds){
int x,y,p=0;
try{
x = 10;
for(int k = 1; k<=20;k++){
y = x – k;
p = (int)x/y;
sleep(1000);
System.out.println(“k=”+k+”( p=x/y=”+p); }}
catch(Exception e){
String err = e.toString();
System.out.println(“thong bao loi:”+err);
System.out.println(“e=”+e);
System.out.println(“getMessage”+e.getMessage());}}}
Khi chạy chương trình ta có kết quả:
k = 1( p = x/y = 1
k = 2( p = x/y = 1
k = 3( p = x/y = 1
k = 4( p = x/y = 1
k = 5( p = x/y = 2
k = 6( p = x/y = 2
k = 7( p = x/y = 3
k = 8( p = x/y = 5
k = 9( p = x/y = 10
thong bao loi: java.lang.ArithmeticException:/by zero
e = java.lang.ArithmeticException:/by zero
getMessage/by
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Phúc Vĩnh
Dung lượng: | Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)