tailieunhanh - Bài giảng Đặc tả hình thức: Chương 13 - Nguyễn Thị Minh Tuyền

Chương 13 giúp người học hiểu về "Giới thiệu về ESC/Java2 Cảnh báo". Nội dung trình bày cụ thể gồm có: Các loại cảnh báo ESC/Java2, Cast warning, Null warning, ArrayStore Warning, ZeroDiv, index Warnings, class invariant warnings,. | LOGO Đặc tả hình thức Giới thiệu về ESC/Java2 Cảnh báo Nguyễn Thị Minh Tuyền Nội dung slide này được dịch từ các slide của David Cok, Joe Kiniry, Eric Poll 1 Các loại cảnh báo ESC/Java2 v  Các cảnh báo ESC/Java2 thường rơi vào các mục sau: §   Cảnh báo về ngoại lệ khi thực thi (runtime exception)(Cast, Null, NegSize, IndexTooBig, IndexNegative, ZeroDiv, ArrayStore). •  Đây là các ngoại lệ khi thực thi phổ biến nhất gây ra bởi các vấn đề khi lập trình. •  Không chứa tất cả các ngoại lệ khi thực thi. Nguyễn Thị Minh Tuyền 2 Đặc tả hình thức Cast warning v  Cảnh báo Cast xảy ra khi ESC/Java2 không thể kiểm tra rằng một ClassCastException sẽ không được đưa ra. public class CastWarning { public void m(Object o) { String s = (String)o; } } sinh ra : Warning: Possible type cast error (Cast) String s = (String)o; ˆ -----------------------------------------------------------------------Nguyễn Thị Minh Tuyền 3 Đặc tả hình thức Cast warning Nhưng sẽ OK nếu ta viết: public class CastWarningOK { public void m(Object o) { if (o instanceof String) { String s = (String)o; } } } Với đặc tả JML: public class CastWarningOK2 { //@ requires o instanceof String; public void m(Object o) { String s = (String)o; } } Nguyễn Thị Minh Tuyền 4 Đặc tả hình thức Null warning v   Cảnh báo Null xảy ra khi ESC/Java2 không thể kiểm tra rằng NullPointerException sẽ không được đưa ra. public class NullWarning { public void m(Object o) { int i = (); } } Kết quả: : Warning: Possible null dereference (Null) int i = (); ˆ -----------------------------------------------------------------------Sẽ OK nếu ta viết: public class NullWarningOK { public void m(/*@ non_null */ Object o) { int i = (); } } Nguyễn Thị Minh .

TỪ KHÓA LIÊN QUAN
crossorigin="anonymous">
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.