2011-08-16 21 views
12

Nếu nhiều ngoại lệ được cho phép trong catch() thì nó sẽ giảm số lượng mã xử lý lỗi dự phòng. Ví dụ: ,Nhiều loại xử lý ngoại lệ khác nhau trong một khối catch?

try{ 
// some statments 
} 
catch(Type1Exception t1, Type2Exception t2, Type3Exception t3) { // wish if this could be allowed 
/* t1, t2, t3 are children of Exception and needs same error handling then why to have different catch blocks with same piece of code */ 
} 
+0

http://download.oracle.com/javase/tutorial/essential/exceptions/index.html – mKorbel

+0

@mKorbel: Và ...? – mellamokb

+0

@Closer: Tôi thực sự không hiểu những người bỏ phiếu để đóng một câu hỏi bởi vì họ không thấy dấu chấm hỏi trong đó! Thôi nào, đây là một câu hỏi thú vị! –

Trả lời

18

Có - đó là lý do tại sao nó là supported in Java 7.

Vì vậy, ví dụ bạn sẽ thực sự là:

try { 
} catch (Type1Exception | Type2Exception | Type3Exception ex) { 
    ... 
} 
+0

Ý bạn là '||' thay vì '|' –

+2

@ Eng.Fouad: Không, ý anh ta là '|'. :-) Hướng dẫn cho biết: "Trong mệnh đề catch, chỉ định các loại ngoại lệ mà khối có thể xử lý và tách riêng từng loại ngoại lệ với một thanh dọc (|)" –

+1

@Jon Skeet: Có điều gì tương tự trong .NET không (prev hoặc phiên bản sắp tới)? – VoodooChild

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