Có, chúng ta có thể định nghĩa một khối try với nhiều khối catch trong Java.
- Mỗi
tryphải liên kết với ít nhất một khốicatch. - Khi một đối tượng ngoại lệ được xác định trong khối
tryvà có nhiều khốicatch, ưu tiên cho khốicatchđược đưa ra dựa trên thứ tự định nghĩa. - Ưu tiên cao nhất luôn là khối
catchđầu tiên. Nếu khốicatchđầu tiên không xử lý được ngoại lệ thì nó xem xét khốicatchngay tiếp theo.
Ví dụ
class TryWithMultipleCatch {
public static void main(String args[]) {
try {
int a[] = new int[5];
a[3] = 10 / 0;
System.out.println("First print statement in try block");
} catch (ArithmeticException e) {
System.out.println("Warning: ArithmeticException");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Warning: ArrayIndexOutOfBoundsException");
} catch (Exception e) {
System.out.println("Warning: Some Other exception");
}
System.out.println("Out of try-catch block");
}
}
Kết quả
Warning: ArithmeticException Out of try-catch block