Yêu cầu mọi thông tin sao chép từ blog này phải được ghi rõ đầy đủ: Thông tin được sao chép từ "http://www.dangngochoangthanh.blogspot.com".

Cool wallpaper http://www.fancymessage.com

EMOJI KEYBOARD PRO http://emojiselector.com

THƯ VIỆN HÌNH ĐỘNG FLASH ANIMATION: http://flashanimationlibrary.blogspot.ru/

Hệ thống học trực tuyến đang được phát triển và sẽ đưa vào sử dụng vào cuối năm nay. Hãy xem qua một số demo của Học Trực Tuyến.


HỌC TRỰC TUYẾN ĐÃ CUNG CẤP PHIÊN BẢN TRUY CẬP QUA MOBILE http://dangngochoangthanh.blogspot.com/?m=1

XEM KÊNH HỌC TRỰC TUYẾN TRÊN YOUTUBE



Search on This Blog

Saturday, September 11, 2010

Ngoại lệ

Các ngoại lệ là cách thức giúp chúng ta tác động ngược trở lại với các tình huống sinh ra ngoại lệ đó.
Để nắm bắt được ngoại lệ, chúng ta sử dụng cú pháp try…catch hoặc throw.

Mệnh đề try…catch

Nếu bạn viết một chương trình có khả năng nảy sinh ngoại lệ, bạn cần đặt nó vào trong khối lệnh của từ khóa try, nếu ngoại lệ phát sinh, hành động xử lý của bạn sẽ được đặt trong khối lệnh của từ khóa catch.
Ví dụ Kết quả
#include using namespace std;
int main()
{
int a;
try{
throw 20;
}catch(int e){
cout<
}
return 0;
}
20

Trong chương trình này, lệnh throw đang cố vượt qua một ngoại lệ tương ứng với mã 20, nhưng ngoại lệ này bị nắm bắt bởi câu lệnh try…catch. Do ngoại lệ phát sinh, nên lệnh trong mệnh đề catch được thực thi.
Nếu có nhiều ngoại lệ phát sinh, bạn có thể sử dụng cấu trúc đa tầng của mệnh đề catch: try{…}catch(…){…}catch(…){…}…

Mệnh đề throw

Khi khai báo một hàm, nếu trong hàm đó có khả năng phát sinh ngoại lệ, chúng ta có thể chỉ định từ khóa throw cho nó
type tên_hàm(danh_sách_tham_số) throw (int)
Nếu chỉ có throw() – nghĩa là không chỉ định loại dữ liệu trong throw – thì hàm sẽ cho phép vượt qua mọi ngoại lệ. Nếu hàm không có mệnh đề throw thì sẽ không được phép vượt qua ngoại lệ.

Thư viện chuẩn exception

Trong thư viện chuẩn của C++, cung cấp cho chúng ta một thư viện chuẩn để quản lý các ngoại lệ đó là exception. Nó nằm trong namespace std. Lớp này có một hàm tạo mặc định, một hàm tạo sao chép, các toán tử và hàm hủy và một hàm thành viên ảo what(). Hàm này trả về con trỏ kí tự phát sinh ngoại lệ. Nó có thể được quá tải trong lớp dẫn xuất.
Ví dụ Kết quả
#include #include
using namespace std;
class myexception:public exception{
virtual const char* what() const throw(){
return “Co ngoai le !”;
}
};
int main(){
try{
myexception myex;
throw myex;
}catch(exception& e){
cout<
}
return 0;
}
Mỗi khi có ngoại lệ xảy ra, mệnh đề catch sẽ được thực hiện, và ngoại lệ sẽ được nắm bắt, kết quả in ra luôn là câu thông báo “Co ngoai le”.

No comments:

Post a Comment