Tôi đang bối rối về việc thực hiện thử cuối cùng khi tồn tại return;
trong khối thử. Theo hiểu biết của tôi, khối cuối cùng sẽ luôn được thực thi, tức là trước khi trở về phương thức gọi điện. Khi xem xét mã đơn giản sau:java: thử cuối cùng khối thực hiện
public class TryCatchTest {
public static void main(String[] args){
System.out.println(test());
}
static int test(){
int x = 1;
try{
return x;
}
finally{
x = x + 1;
}
}
}
Kết quả được in thực tế 1. Điều này có nghĩa là khối cuối cùng không được thực thi? Bất cứ ai có thể giúp tôi với nó?
Tại sao bạn không thêm 'System.out.println()' vào khối cuối cùng và tự xem mình? Tôi nghĩ rằng nó được thực thi nhưng giá trị trả về là 1. –
Khi sử dụng try catch, bạn có thể "bắt" các loại ngoại lệ cụ thể (ví dụ: IOException, NullPointerException v..v ..). chạy một số mã trước khi bắt anyways ... – RicardoE
[Đây] (http://stackoverflow.com/questions/tagged/java+return+finally?sort=votes&pagesize=40) một cái gì đó để suy nghĩ về trong khi upvoting – keyser