2012-03-22 26 views

Trả lời

4

Bạn cần bắt số IOException và, có, phân tích cú pháp chuỗi.

Không có bất kỳ ngoại lệ nào khác cụ thể hơn so với trường hợp bị bắt theo như tôi biết.

Hoặc bắt SocketException và, một lần nữa, phân tích cú pháp chuỗi.

Here 's lớp cây từ javadoc (phiên bản 6). Như bạn có thể thấy, SocketException là ngoại lệ chuyên biệt nhất được ném khi kết nối được đặt lại.

+2

Nó không phải là một SocketException, nó là một IOException. Việc nắm bắt SocketException sẽ không hoạt động. Câu cuối cùng của bạn là hoàn toàn không đúng nếu không vô nghĩa. – EJP

+0

'Được cho biết rằng có lỗi trong giao thức cơ bản, chẳng hạn như lỗi TCP.' (Mô tả SocketException trong javadoc) Thiết lập lại kết nối là lỗi TCP (Mã lỗi 10054). –

+0

Không liên quan. Khi bạn nhận được một ngoại lệ với văn bản "kết nối thiết lập lại" nó là một 'IOException', không phải là một' SocketException'. Thử nó. Bạn không thể suy ra nó từ hệ thống phân cấp lớp Javadoc. – EJP

1

Các JVM làm cho không có sự khác biệt về nguyên nhân thực sự của lỗi, do đó nó sẽ ném một genericIOException trong mọi trường hợp (adapter bị ngắt kết nối, thời gian chờ, ICMP lỗi ...). Chỉ có chuỗi có thể đọc được của con người mô tả lỗi và không có gì bạn có thể làm về nó.

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