Tôi đã đoạn mã sauThêm trở lại trong cuối cùng ẩn ngoại trừ
public static void nocatch()
{
try
{
throw new Exception();
}
finally
{
}
}
Mà cho lỗi
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type CustomException
Đó là như mong đợi, nhưng thêm một tuyên bố return
trong khối finally
làm cho các lỗi biến mất
public static void nocatch()
{
try
{
throw new Exception();
}
finally
{
return; //makes the error go away!
}
}
Ai đó có thể vui lòng giải thích cho tôi đang xảy ra? và tại sao lỗi này biến mất?
Lưu ý: Tôi đã viết mã này hoàn toàn cho mục đích thử nghiệm!
Bài liên quan: [thử cuối cùng khối thực thi] (http://stackoverflow.com/q/18131447/1679863). Mặc dù điều đó không nói về ngoại lệ, nhưng lý do cho điều này cũng giống như vậy. –
Lưu ý phụ: không thử chạy mã không biên dịch. Thực sự không có lợi ích khi làm như vậy. Nói về lỗi biên dịch thời gian, thay vì ngoại lệ bạn nhận được từ mã đang chạy chưa được biên dịch để bắt đầu. –
@JonSkeet Tôi chỉ muốn chỉ ra lỗi mà nó gây ra, đó là lý do tại sao tôi chạy mã. – codeMan