Từ khóa throw và throws – Phân biệt throw và throws trong java

This entry is part 18 of 31 in the series

This entry is part 18 of 31 in the series Tự học lập trình Java

Bài viết ngày hôm nay mình sẽ giới thiệu các bạn hai từ khóa đó là throw throws trong java. Nào cùng tìm hiểu công dụng của từng từ khóa và cách phân biệt chúng.

Từ khóa throws trong java

Nếu một phương thức không xử lý một ngoại lệ đã kiểm tra thì phương thức đó phải khai báo ngoại lệ bằng từ khóa throws. Từ khóa throws được khai báo ở cuối dấu ngoặc ( ) trước khi bắt đầu một phương thức.

Cùng xem ví dụ về cách sử dụng throws

0

1

2

3

4

5

6

7

8

9

 

import

java

.

io

.

*

;

public

class

DemoJava

{

    

public

static

void

main

(

String

[

]

args

)

throws

IOException

{

      

FileOutputStream

fileOutputStream

=

null

;

      

fileOutputStream

=

new

FileOutputStream

(

“D://output.txt”

)

;

      

fileOutputStream

.

write

(

65

)

;

    

}

}

 

Ở ví dụ trên phương thức main đã khai báo bỏ qua ngoại lệ IOException nên chương trình trên vẫn chạy bình thường.

Bạn cũng có thể khai báo bỏ qua nhiều ngoại lệ bằng cách khai báo các ngoại lệ sau từ khóa throws cách nhau bởi dấu phẩy. Cùng xem ví dụ về cách khai báo dưới đây

0

1

2

3

4

5

 

public

void

withdraw

(

int

n

)

throws

RemoteException

,

      

InsufficientFundsException

{

      

//khối lệnh

  

}

 

Từ khóa throw trong java

Từ khóa throw dùng để ném ra một ngoại lệ cụ thể.

Chúng ta có thể ném một trong hai ngoại lệ checked hoặc unchecked trong java bằng từ khóa throw. Từ khóa throw chủ yếu được sử dụng để ném ngoại lệ tùy chỉnh (ngoại lệ do người dùng tự định nghĩa).

Cú pháp từ khóa throw

0

1

2

 

throw

exception

;

 

Ví dụ về ném ra ngoại lệ IOException

0

1

2

 

throw

new

IOException

(

“File khong ton tai”

)

;

 

Cùng xem cách ném ra ngoại lệ bằng từ khóa throw

0

1

2

3

4

5

6

7

8

9

10

11

 

import

java

.

io

.

*

;

public

class

DemoJava

{

    

static

void

demoThrow

(

)

throws

IOException

{

        

throw

new

IOException

(

“File khong ton tai”

)

;

    

}

    

public

static

void

main

(

String

[

]

args

)

throws

IOException

{

    

demoThrow

(

)

;

    

}

 

}

 

Sau khi chạy chúng ta sẽ nhận được kết quả

0

1

2

 

Exception in thread “main” java.io.IOException: File khong ton tai

 

Các bạn lưu ý khi bạn throw ra một exception trong một phương thức thì hoặc:

  • Các bạn phải dùng từ khóa throws để bỏ qua ngoại lệ đó.
  • Các bạn phải dùng khối try-catch để bắt ngoại lệ đó.

Sự khác nhau giữa throw và throws trong java

throw
throws

Từ khóa throw trong java được sử dụng để ném ra một ngoại lệ rõ ràng.
Từ khóa throws trong java được sử dụng để khai báo một ngoại lệ.

Ngoại lệ checked không được truyền ra nếu chỉ sử dụng từ khóa throw.
Ngoại lệ checked được truyền ra ngay cả khi chỉ sử dụng từ khóa throws.

Sau throw là một instance.
Sau throws là một hoặc nhiều class.

Throw được sử dụng trong phương thức.
Throws được khai báo ngay sau dấu đóng ngoặc đơn của phương thức.

Bạn không thể throw nhiều exceptions.
Bạn không thể throw nhiều exceptions.

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !