2013-06-11 38 views
7

Tôi mới sử dụng Java và tôi đang xem xét xử lý ngoại lệ. Khi chúng tôi bắt ngoại lệ java, chúng tôi tuyên bố và sử dụng một Object của lớp Exception mà không cần khởi tạo nó, ví dụ:Các lớp ngoại lệ Java

catch(NullPointerException e) 
    e.printStackTrace(); 

Vì vậy, câu hỏi của tôi là, làm thế nào chúng ta có thể sử dụng đối tượng tham khảo e mà không instantiating nó?

+0

Gợi ý: Đối tượng ngoại lệ bạn đang bắt * được * khởi tạo trong khối đã ném ngoại lệ để bắt đầu. – Santa

+0

Điều tương tự cũng áp dụng cho các tham số của phương thức. Chúng được xây dựng ở nơi khác và được gửi đến phương pháp. Không khác với ngoại lệ, chỉ là một cơ chế khác. – EJP

Trả lời

8

Họ được khởi tạo tốt:

void example() { 
    throw new UnsupportedOperationException("message"); 
}  // ^^^ 

void demonstration() { 
    try { 
     example(); 
    } catch (UnsupportedOperationException e) { 
     e.printStackTrace(); 
    } 
} 

ví dụ rất đơn giản này nên được khá tự giải thích ...

1

Trường hợp ngoại lệ (thường) được khởi tạo khi lỗi xảy ra với tuyên bố throw. Ví dụ,

throw new NullPointerException(); 

(Lưu ý rằng đây chỉ là một ví dụ. NPEs thường không được ném một cách rõ ràng trong mã của riêng bạn.)

Mệnh catch cũng tương tự như một chức năng khai báo một tham số. Hãy xem xét chức năng

void func(String s) { 
    // ... 
} 

func không khởi tạo s. String được tạo ở một nơi khác và được chuyển đến hàm. Trong cùng một cách, chúng tôi tạo một ngoại lệ với throw và nó được "chuyển" thành loại điều khoản catch giống như một tham số.

0

Vâng, tham khảo e trong catch(NullPointerException e) là dành cho các ngoại lệ có thể ném vào mã sử dụng throw new NullPointerException("some error message");

0

Trường hợp ngoại lệ được khởi tạo. Nó xảy ra trong nội bộ trong lớp có khả năng ném một ngoại lệ. Đối với thông tin của bạn, từ khóa ném có trách nhiệm tạo và ném ngoại lệ. Phương pháp bắt của bạn sẽ bắt được ngoại lệ. Bạn cũng có thể thực hiện các ngoại lệ của riêng bạn bằng cách sử dụng từ khóa này.

Các vấn đề liên quan