1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO BÀI TẬP LỚN Môn Lập Trình Java Tìm hiểu về cơ chế bắt lỗi (Exception Handling) trong Java

30 1,2K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 149 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÁO CÁO BÀI TẬP LỚNMôn Lập Trình Java Tên đề tài : - Tìm hiểu về cơ chế bắt lỗi Exception Handling trong Java - Tìm hiểu về lớp File và interface Serializable - Viết chương trình đọc và

Trang 1

BÁO CÁO BÀI TẬP LỚN

Môn Lập Trình Java

Tên đề tài :

- Tìm hiểu về cơ chế bắt lỗi (Exception Handling)

trong Java

- Tìm hiểu về lớp File và interface Serializable

- Viết chương trình đọc và ghi tệp chứa các đối tượng Sinh viên có các thông tin về mã sinh viên,

họ tên và ngày sinh

Trang 2

Nhóm sinh viên thực hiện

Trang 3

Nội dung báo cáo

:

I Cơ chế bắt lỗi (Exception Handling)

1

Giới thiệu một lỗi (exception)

2

Mục đích của việc xử lý lỗi

3

Mô tả mô hình xử lý lỗi

4 Các khối ‘try’ và ‘catch

5 Khối “finally

6 Các ngoại lệ được định nghĩa với lệnh ‘throw’ và ‘throws

7 Danh sách các ngoại lệ

Trang 4

II Lớp File

1

Giới thiệu lớp file

2

Một số phương thức trong lớp File

3

Thư mục

4

FilenameFiter

5 listFiles

()

III Lớp Interface Serializable

Trang 5

Nội dung chi tiết :

I Cơ chế bắt lỗi(Exception Handling

1 Giới thiệu một lỗi

:

Exception là một lỗi đặc biệt Nó thường

xuất hiện vào lúc thực thi chương trình Các trạng thái không bình thường xảy ra trong

khi thi hành chương trình tạo ra các

Exception Những trạng thái này không được biết trước khi ta xây dựng chương trình

Ngôn ngữ Java cung cấp bộ máy xử lý lỗi

rất tốt Nó làm hạn chế tối đa trường hợp hệ thống bị phá vỡ hay ngắt đột ngột

.

Trang 6

Các lỗi trong một chương trình

.

+

Lỗi thực thi : là một lỗi khách nhưng có thể kiểm soát

được nhờ cơ chế bắt lỗi trong Java

.

Trang 7

2 Mục đích của việc xử lý lỗi :

Một chương trình nên có cơ chế xử lý lỗi thích

hợp Nếu không, chương trình sẽ ngắt khi hệ

thống xảy ra lỗi

Trong trường hơp đó, tất cả các nguồn tài nguyên

mà hệ thống trước kia phân phối sẽ được di dời trong cùng trạng thái Điều này làm gây lãng phí nguồn tài nguyên Để tránh trường hợp này, tất

cả các nguồn tài nguyên mà hệ thống phân phối nên được thu hồi lại Tiến trình này đòi hỏi cơ

chế xử lý lỗi thích hợp

Trang 8

3

-

Loại bỏ một ngoại lệ: một phương thức sau

khi đã khai báo thì có thể ném ra các đối

Trang 9

Vấn đề của người lập trình là phải biết

được đoạn mã nào có thể gây ra lỗi.Khi đã khoanh vùng được đoạn mã có thể gây ra lỗi họ sẽ đặt đoạn mã đó trong khối “try”,

và đặt đoạn mã xử lý lỗi trong khối “catch

”.

Trang 10

Cấu trúc của mô hình xử lý ngoại lệ

}

Trang 11

4 Các khối “try” và “catch

” :

+

Khối try - catch được sử dụng để thi hành mô hình catch và throw của việc xử lý lỗi Khối try chứa một

bộ các lệnh có thể thi hành được Các lỗi có thể bị

chặn khi thi hành những câu lệnh này Phương thức dùng để chặn lỗi có thể được khai báo trong khối

try Một hay nhiều khối catch có thể theo sau khối

try Các khối catch này bắt các lỗi trong khối try

.

+

Để bắt giữ bất cứ một lỗi nào, ta phải chỉ ra được

kiểu lỗi là Exception : catch(Exception e)

+

Khi lỗi bị bắt giữ không biết thuộc kiểu nào chúng ta

có thể sử dụng lớp Exception để bắt lỗi đó

.

Trang 12

Chương trình minh họa cách sử dụng các khối

;

}

}

}

Trang 13

+

Khi sử dụng các “try” lồng nhau, khối “try”bên

trong được thi hành đầu tiên Bất kỳ lỗi nào bị chặn trong khối “try” sẽ bị bắt giữ trong khối “catch” theo sau Nếu khối catch thích hợp không được tìm thấy thì các khối “catch” của các khối “try” bên ngoài sẽ

được xem xét Nếu không, Java Runtime

Environment xử lý các lỗi

.

+

Khi các khối try được sử dụng mà không có các

khối catch nào, chương trình sẽ biên dịch mà không gặp sự cố nào nhưng sẽ bị ngắt khi thực thi Bởi vì

đã xảy ra lỗi khi thực thi chương trình

.

Trang 14

5 Khối “finally

Khối này chứa các câu lệnh thu hồi tài

nguyên về cho hệ thống hay lệnh in ra các

câu thông báo

Trang 15

+

Khi finally là tùy ý, khối này được đặt sau khối catch Hệ thống sẽ duyệt từ câu lệnh đầu tiên của khối finally sau khi gặp lệnh

return hay lệnh break được dùng trong khối try

+

Khối “finally bảo đảm lúc nào cũng được

thực thi, bất chấp có lỗi nào xảy ra hay

không

Trang 16

Minh họa sự hình thành các khối

“try”,”catch” và “finally

”:

try block

catch block finally block

finally block

No Exception Exception occurs

Trang 17

6

Các ngoại lệ được định nghĩa với lệnh

‘throw’ và ‘throws

+

Trong exception còn 1 kiểu là ngoại lệ tự định

nghĩa với throw và throws

Các ngoại lệ bị chặn với sự trợ giúp của từ khóa

throw Từ khóa throw chỉ ra 1 exception vừa

xảy ra, Từ khóa‘throws’ để xử lý nhiều loại ngoại

lệ Một phương thức đơn có thể chặn nhiều loại lỗi và để xử lý những lỗi này, ta cần cung cấp

một danh sách các lỗi mà phương thức chặn

trong phần định nghĩa của phương thức

Public class Example

Trang 18

7 Danh sách các ngoại lệ

:

RuntimeException Lớp cơ sở cho nhiều lỗi java.lang

ArthmeticException Trạng thái lỗi về số, ví dụ như chia cho

0 IllegalAccessException Lớp không thiết truy cập

IllegalArgumentException Phương thúc nhận một đối số không

hợp lệ ArrayIndexOutOfBoundsExeption Kích thước của mảng lớn hơn 0 hay lớn

hơn kích thước thật của mảng NullPointerException Khi muốn truy cập tới đối tượng null

SecurityException Việc thiết lập cơ chế bảo mật không

được hoạt động ClassNotFoundException Không thể truy nạp lớp yêu cầu

Trang 19

II Lớp File

:

1

Giới thiệu lớp file

2

Một số phương thức trong lớp File

3

Thư mục

4

FilenameFiter

5 ListFiles

()

Trang 20

1 Giới thiệu về lớp File

:

+

Lớp File giao tiếp trực tiếp các file và hệ thống file

Lớp File không xác định thông tin mang về hoặc

được lưu trữ trên các tập tin như thế nào

+

Một đối tượng File dùng giám sát và thao tác

thông tin tương ứng với một tập tin trên đĩa như

thời gian, ngày tháng, đường dẫn thư mục và cây thư mục con

Trang 21

2 Một số phương thức trong lớp File

File(File dirObj, String filename)

Trong đó, directoryPath là tên đường dẫn của tập tin, filename là tên tập

tin, và dirObj là một đối tượng File xác định thư mục

.

+

File định nghĩa nhiều phương thức lấy các thuộc tính chuẩn của

đối tượng File Ví dụ, getName() trả về tên của file, getParent() trả về tên của thư mục cha và exists() trả về true nếu file tồn tại Tuy vậy, lớp File không có tính đối xứng Tức là có nhiều

phương thức cho phép bạn tham chiếu các thuộc tính của một đối tượng file đơn giản, nhưng không có phương thức tương

Trang 22

Một số phương thức quan trọng

:

public void deleteOnExit

() Xóa file tương ứng với đối tượng gọi

hàm khi máy ảo Java kết thúc public boolean isHidden

() Trả về true nếu file là ẩn Ngược lại là

false

public boolean

setLastModified(long milisec)

Đặt thời gian của tập tin theo milisec, là

số mili giây kể từ 0h00 ngày 01/01/1970

theo mốc định vị toàn cầu(UTC)

public boolean

setReadOnly(long milisec)

Đặt thuộc tính tập tin là read-only

public String getPath () Lấy đường dẫn của tập tin

public String[] list

() Lấy danh sách tên các tập tin và thư mục

con của đối tượng File đang xét và trả về

trong một mảng

Trang 23

Ví dụ minh họa một số phương thức của File

;

System.out.println("File Name: "+ f1.getName())

;

System.out.println("Path: "+f1.getPath())

;

System.out.println("Abs Path: "+ f1.getAbsolutePath())

;

System.out.println("Parent: "+f1.getParent())

;

System.out.println(f1.exists() ?"exists" : "does not exist")

;

System.out.println(f1.canWrite()? "is writeable":"is not writeable")

;

System.out.println(f1.canRead() ? "is readable":"is not readable")

;

System.out.println("is "+ (f1.isDirectory()?"" : "not"+"a directory"))

;

System.out.println(f1.isFile()?"is normal file":"might be a named pipe")

;

System.out.println(f1.isAbsolute()?"is absolute":"is not absolute")

;

System.out.println("File last modified: "+f1.lastModified())

;

System.out.println("File size: "+ f1.length()+"Bytes")

;

Trang 24

3 Thư mục

Hai hàm tiện ích khác của File là mkdir() và

mkdirs() Hàm mkdir() tạo ra một thư mục, trả về true nếu thành công Trường hợp xảy ra lỗi khi

đường dẫn xác định trong đối tượng File đang tồn

tại, hoặc là đường dẫn không gồm tên thư mục

cần tạo của File chưa tồn tại

+

Để tạo ra một thư mục không cần có đường dẫn

đã tồn tại ta dùng hàm mkdirs(), nó tạo ra một thư

mục và tất cả các thư mục cha của thư mục đó có

mặt trong đường dẫn của File

Trang 25

4 FilenameFilter

:

+

Khi bạn tạo đối tượng File và đặt nó là thư mục,

hàm isDirectory() trả về true Trong trường hợp

đó, bạn có thể gọi list() để trích danh sách các file

và thư mục khác bên trong Hàm này có hai dạng

Trong dạng thứ hai, FFObj là đối tượng của lớp

thể hiện giao diện FilenameFilter Lớp này định

nghĩa chỉ một phương thức đơn giản accept(), nó gọi một lần cho từng tập tin trong một danh sách

Dạng mở rộng của hàm này

:

Boolean accept(File drectory,Stringfilename)

Trang 26

+

Hàm accept() trả về true cho các tập tin trong

thư mục directory và có mặt trong danh sách (các tập tin tương xứng với filename)

+

Lớp OnlyExt thể hiện FilenameFilter Nó sẽ dùng

sửa đổi chương trình trước để giới hạn các tập tin

trả về bởi list() với những tập tin có cùng phần tên

mở rộng

Trang 27

5 listFile

:

+

Java cung cấp một dạng biến thể của list() là listFiles() rất hữu ích

Các dạng của listFiles() trình bày sau đây

.

File[] listFiles

()

File[] listFiles(FilenameFilter FFObj)

File[] listFiles(FileFilter FObj)

Các phương thức trên trả về mảng các đối tượng File thay thế vì mảng

chuỗi tên tập tin Hàm đầu tiên trả về tất cả các tập tin và hàm thứ hai

trả về những file thỏa mãn FilenameFilter xác định Chỉ khác là trả về các đối tượn File Hai hàm đầu tiên làm việc tương tự như các dạng

Trang 28

III Lớp interface Serializable

:

+

Để ghi được đối tượng vào file ta cần lớp ObjectOutputStream và đọc đối tượng đó là ObjectInputStream Muốn đọc và ghi được đối tượng thì ta

cần cài đặt (implement ) interface Serializable cho nó

nó là ta đã có thể sử dụng lớp ObjectOutputStream ()

Trang 29

+

Khi đối tượng được đc ghi vào luông thì methods

writeOject() sẽ tự động lưu các thông tin của đối tượng

đó Và ta có thể đọc lại đối tượng đó bằng methods

readObject

()

+

Để viết một object ra file thì object đó cần implemnts

inteface Serializable Vì lúc này khi viết object ra file nó giúp chuyển cấu trúc phức của object thành cấu trúc

tuần tự đơn giản hơn trước khi ghi ra file Serialize

-nhận một tham chiếu System.Object và một tham chiếu

System.IO.Stream làm đối số, tuần tự hóa Object và

ghi nó vào Stream

.

Trang 30

TÀI LIỆU THAM KHẢO

1

Bài giảng Lập trình Java (Ngô Công Thắng –

Khoa CNTT – Trường ĐH Nông Nghiệp Hà Nội)

2

Một số nguồn tài liệu trên các địa

Lập trình Java căn bản (Nguyễn Tấn Thành)

4 Lập trình hướng đối tượng trong java (Hoàng

Trọng Thế)

Ngày đăng: 14/04/2015, 09:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w