2011-10-18 40 views
5

Tôi bắt đầu học Java và viết các lớp tiện ích đầu tiên của tôi trong java được cho là sẽ đi vào sản xuất. Tôi phần nào bị mất khi nó đến để đối phó với trường hợp ngoại lệ. Có một số hình bóng về số lượng các câu lệnh thử có trong một dòng mã không?Thực hành tốt nhất trong việc xử lý ngoại lệ java

Phần lớn mã được cho là phải giải quyết ngoại lệ .. mọi plugin cho Eclipse? Thực hành tốt nhất là bao gồm 3-4 câu lệnh trong khối thử và bắt ngoại lệ hoặc bao gồm 10-12 dòng trong khối thử và sau đó bao gồm 2-3 câu bắt bắt các loại ngoại lệ khác nhau hoặc bởi các lớp học của riêng tôi hoặc một số lớp khác của bên thứ 3 ..? Trước đây là một chút không hài lòng với mắt và nó đang bloating mã rất nhiều ..

Thực hành phổ biến này là chỉ và chỉ bao quanh mã đó trong khối thử có thể ném ngoại lệ hoặc nó tốt để gắn thẻ xung quanh mã là tốt bên trong hãy thử nói cách xử lý tệp đang được sử dụng, v.v.

Bất kỳ con trỏ nào ..?

+2

bạn sắp hết hạn. Đầu tiên hãy thử biết ngoại lệ và loại của chúng là gì và thử, bắt và ném. Sau đó bạn sẽ rõ ràng. –

+2

Mẹo của tôi: xóa cụm từ "khối try-catch" khỏi não của bạn. Hãy suy nghĩ thay vì "cố gắng cuối cùng khối". Bắt ngoại lệ, nơi bạn có thể phục hồi, hoặc nơi bạn muốn đăng nhập và di chuyển ... điều này thường ở mức rất cao trong chương trình của bạn. – erickson

+0

trước tiên hãy xem câu trả lời của tôi tại đây: http://stackoverflow.com/questions/7129979/java-exception-handling/7130076#7130076 và sau đó http://download.oracle.com/javase/tutorial/essential/exceptions/index .html có thể là hướng dẫn tốt nhất cho bạn. –

Trả lời

2

"Có thực hành tốt nhất để bao gồm 3-4 tuyên bố trong một khối try và catch ngoại lệ hoặc ..."

Tôi nghĩ rằng bạn cần phải rõ ràng về trường hợp ngoại lệ đầu tiên.

try { 
    ...some code that throws exceptions 
} catch (Exception ex){ 
    ex.printStacktrace(); 
} 

Đoạn trên là xử lý ngoại lệ. Trong xử lý ngoại lệ, chúng tôi giữ mã có thể tạo ngoại lệ trong khối try{} và nếu khối statemnet trong khối thử tạo ngoại lệ, nó sẽ bị chặn bởi khối catch{}.

Có hay không bao gồm tuyên bố 3-4 trong khối thử và bắt ngoại lệ. .. không được xác định bởi RULES. Nó phụ thuộc vào logic và yêu cầu của chương trình.


Các liên kết sau đây sẽ giúp bạn xóa funda về Java Exceptions: http://marakana.com/bookshelf/java_fundamentals_tutorial/exceptions.html

Đối thực hành tốt nhất về Exceptions Java, theo bài báo và bảo đảm chất lượng sau.

Best practices for exception management in Java or C#

http://www.wikijava.org/wiki/10_best_practices_with_Exceptions

+0

Tôi cũng khuyên bạn nên tìm hiểu hướng dẫn này để hiểu rõ nhất thực hành sử dụng ngoại lệ trong java: [Sử dụng ngoại lệ hiệu quả trong java] (http://programmergate.com/use-exceptions-effectively/) –

0

tôi sẽ không tính dây chuyền.

khối try try thành công dưới dạng một khối mã hoặc không thành công dưới dạng một khối mã (theo tính tổng quát). Vì vậy, bạn có thể xem xét một 'đơn vị công việc' được bao hàm trong một khối try/catch. Đây là định nghĩa cơ bản giống nhau của một phương thức. Vì vậy, hai thường có thể đi cùng nhau.

Đặt một khối try/catch theo một phương pháp.

Sai lầm của người mới bắt đầu (tôi nghĩ) là tạo ra hàng tấn khối thử cá nhân, hầu như chỉ có một điểm trên mỗi dòng. Thông thường bạn chỉ muốn một cái lớn, bao gồm đơn vị công việc bạn đang cố gắng thực hiện.

1

Kiểm tra đường nhỏ này từ hướng dẫn Java: http://download.oracle.com/javase/tutorial/essential/exceptions/index.html (Lưu ý rằng đây là dành cho Java 7).

Thực tiễn tốt nhất trong xử lý ngoại lệ không thể thực sự được thể hiện dưới dạng tỷ lệ mã. Đầu tiên hãy tìm hiểu sự khác biệt quan trọng giữa các lỗi, ngoại lệ và ngoại lệ thời gian chạy. Lỗi và ngoại lệ là hai nhánh riêng biệt của phân cấp Throwable. Các ngoại lệ thời gian chạy là các kiểu ngoại lệ đặc biệt không yêu cầu khai báo vì chúng không được xử lý bằng mã thông thường. Một khi bạn hiểu những gì từng làm, bạn cũng đang tiến hành.

Hãy nhớ rằng xử lý ngoại lệ không chỉ là thực tiễn tốt nhất và thông thường, mà còn ảnh hưởng đến một mức độ nào đó theo phong cách và ý kiến. Một số người thích bắt ngoại lệ sớm, dẫn đến rất nhiều khối try-catch trong mã. Những người khác muốn bao quanh số lượng lớn các dòng với một thử.

Nếu bạn thoải mái sử dụng JDK 7 thay vì phiên bản Java cũ hơn, hãy điều tra cấu trúc try-with-resources và cơ chế multi-catch, cả hai sẽ giúp xử lý ngoại lệ thanh lịch và giảm mã bloat.

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