Máy tínhLập trình

Java: trường hợp ngoại lệ và xử lý của họ

Bất kỳ chương trình sẽ hoạt động ổn định chỉ khi mã nguồn được sửa lỗi, và không có điều kiện có thể gây ra những tình huống không lường trước được. Quá trình bắt lỗi có thể được thực hiện trên sân khấu chương trình. Để làm điều này, nhà phát triển sẽ đưa vào tài khoản tất cả các kết quả mong đợi và cố gắng để hạn chế ảnh hưởng của lỗi để nó không thể can thiệp vào hoạt động của chương trình, hoặc dẫn đến sự sụp đổ của nó.

Khi bạn có thể cần xử lý ngoại lệ

Trong Java, một ngoại lệ có thể được gây ra bởi người dùng nhập vào không chính xác, không cần một nguồn lực hoặc chương trình mạng ngắt kết nối đột ngột. Để sử dụng thoải mái tạo ra bởi nhà phát triển ứng dụng, bạn phải kiểm soát sự xuất hiện của tình huống khẩn cấp. Người tiêu dùng không cần phải chờ đợi để bỏ một ứng dụng, mất dữ liệu như là kết quả của một ngoại lệ unhandled, hoặc chỉ là một phần của một hộp thoại xuất hiện nói rằng một cái gì đó đã đi sai.

Xử lý ngoại lệ Java

Có gì để xem xét? Ngôn ngữ Java có chức năng xử lý ngoại lệ built-in riêng của mình. Tất nhiên, một tỷ lệ lớn các lỗi được đánh bắt bởi một giai đoạn biên soạn, hệ thống sẽ tự động thông báo rằng việc sử dụng nó không còn có thể. Nhưng có loại ngoại lệ xảy ra khi chạy. Các nhà phát triển sẽ có thể dự đoán nó và để thiết kế mã để nó không gây ra một lỗi, và xử lý nó một cách đặc biệt và trao quyền kiểm soát một chi nhánh khác.

Trong Java, điều này được áp đặt bởi trình biên dịch để bắt một ngoại lệ, vì vậy những vấn đề điển hình được biết đến và có một mô hình tập thể dục thông thường.

loại trừ tiêu biểu

Ví dụ đơn giản, trong đó bạn có thể nhận được một ngoại lệ - bộ phận này. Mặc dù đơn giản của nó, về, như một gốc cây, có thể không, điều này sẽ dẫn đến một lỗi. Vâng, nếu chúng ta có thể dự đoán sự xuất hiện của quá khứ và ngăn chặn. Nhưng tùy chọn này không phải lúc nào cũng có sẵn, vì vậy thu hút sự ngoại lệ nên được tổ chức trực tiếp trong trường hợp "chia cho số không".

Cơ chế Java để chặn Lỗi xử lý như sau:

  • đối tượng ngoại lệ đống được tạo ra, cũng như bất kỳ khác;
  • quá trình tự nhiên của chương trình bị gián đoạn;
  • cơ chế loại trừ đang cố gắng tìm một cách khác để tiếp tục mã;
  • Tìm một thực hiện an toàn của chương trình trong bộ vi xử lý, làm việc hoặc phục hồi, hoặc sẽ xảy ra thực hiện các ngoại lệ trong một cách đặc biệt.

Ví dụ đơn giản nhất của việc tạo ra một lỗi có thể trông như thế này:

if (null ==)

ném NullPointerException mới ();

Tại đây, các biến a được kiểm tra tại khởi, tức là, không phải là liệu các tham chiếu đến một đối tượng null. Nếu tình trạng này đã nảy sinh và cần phải xử lý đặc biệt, một ngoại lệ được ném bởi một ném NullPointerException mới ().

Vài thông tin về từ khóa

Khi giao dịch với ngoại lệ thường là cần thiết để sử dụng Java từ khóa để chỉ một hành động cụ thể. Đây ngôn ngữ trong năm chương trình của họ:

  • Hãy thử. Từ khóa này là đã gặp nhau, và nó có nghĩa là một sự chuyển tiếp vào một phần của mã mà có thể ném một ngoại lệ. Khối niềng răng hạn chế {}.
  • Catch. Nó chặn đứng các loại ngoại lệ mong muốn và xử lý nó một cách thích hợp.
  • Cuối cùng. Từ khóa này là không bắt buộc và được sử dụng để thực hiện một phần nhất định của mã, đó là cần thiết dù sao, ngay cả khi không có ngoại lệ không được bắt. Bổ sung trực tiếp sau khối try.
  • Ném - cho phép bạn tạo ra ngoại lệ Java từ bất cứ nơi nào.
  • Ném - một từ khóa được đặt trong chữ ký phương pháp. Nó có nghĩa là các mã sau đây có thể ném một ngoại lệ của loại hình này Java. dấu này đóng vai trò như một tín hiệu để các nhà phát triển mà cần phải được lưu ý - phương pháp này không thể làm việc như mong đợi của ông.

Bắt với một thử

Phát hành để ngoại lệ Java, một cách tự nhiên giả định rằng nó sẽ được xử lý một cách đặc biệt. Cách thuận tiện nhất để làm điều đó, nếu phần mã được rào lại trong một khối. Có thể chứa một ngoại lệ. Khi bạn chạy mã này, máy ảo sẽ tìm thấy một tình huống bất ngờ, hiểu rằng có một khối quan trọng và chuyển điều khiển đến trạm với chế biến.

Mã Java được bọc trong một khối try đặc biệt, trong đó có thể là một ngoại lệ. Do đó, ông đặt một vài tình huống không lường trước được rằng sẽ bị bắt trong cùng một vị trí, không raspolzayas mã.

Mã điển hình nhất cho đơn vị xử lý như sau:

try {

// Đây là một số mã có thể tạo ra một ngoại lệ

} Catch (Tip_isklyucheniya_1 identifikator_1) {

// Ở đây có xử lý ngoại lệ, theo loại hình và điều kiện của mình;

} Catch (Tip_isklyucheniya_2 identifikator_2) {

// Ở đây có xử lý ngoại lệ, theo loại hình và điều kiện của mình;

}

bắt từ khóa báo cáo mã, và quét nó cho một ngoại lệ, được đối xử như mô tả dưới đây, với điều kiện là nó phù hợp với loại hình của nó. Từ định danh có thể được sử dụng trong việc xử lý các khối mã như các đối số.

cuối cùng

Vì nó trở nên rõ ràng từ các chương trước, khối catch bắt ngoại lệ và xử lý chúng. Nhưng rất thường xuyên tình hình phát sinh ở đâu nên chạy một số mã, bất kể họ đã bị bắt sai lầm. Đối với điều này có từ khóa cuối cùng. Nó được sử dụng để tăng giá trị của các quầy khác nhau, đóng file hoặc kết nối mạng.

âm mưu này trình bày một vài khối catch phát minh ra phương pháp nắm bắt ngoại lệ. Ví dụ, đoạn mã chứa trong thử tạo ra một tình huống bất ngờ như Lạnh. Sau đó, giao diện điều khiển sẽ được hiển thị biểu «Caught lạnh!» Và «Có phải đó là một cái gì đó để cổ vũ về?». Đó là, các khối cuối cùng được thực hiện trong mọi trường hợp.

Trong thực tế, một cách để tránh gây ra cuối cùng ở đó. Nó được kết nối với việc hoàn thành các máy ảo. Tìm cách để thực hiện nó, nó có thể trên không gian mở Internet.

từ khóa ném

Ném tạo ra một ngoại lệ. cú pháp của nó là như sau:

ném NewException mới ();

Có được tạo ra một ngoại lệ mới để loại NewException (). Là một loại có thể được sử dụng đã được bao gồm trong các lớp thư viện chuẩn của Java và trước đây được xác định bởi nhà phát triển của sản xuất riêng của mình.

Thiết kế này là một phần của mô tả về phương pháp bất kỳ, mà các cuộc gọi sau đó nên xảy ra bên trong khối try, để có thể ngăn chặn nó.

Từ khoá ném

Điều gì nếu trong quá trình phát triển của một tình huống mà phương pháp này có thể ném một ngoại lệ, nhưng không thể xử lý đúng đắn. Để kết thúc này, trong chữ ký phương pháp xác định từ ném và loại ngoại lệ có thể.

Nhãn này là một loại chỉ số cho các nhà phát triển khách hàng rằng phương pháp này không có khả năng xử lý cùng một ngoại lệ của họ. Ngoài ra, nếu các loại lỗi được kiểm tra, sau đó trình biên dịch sẽ buộc một cách rõ ràng yêu cầu nó.

Hãy thử với các nguồn lực

Các nhà phát triển Java phiên bản 7 đã bao gồm một sự đổi mới quan trọng, như một khối điều trị thử với nguồn lực.

Nhiều đối tượng được tạo ra trong Java, sau khi sử dụng nên được đóng cửa để bảo tồn tài nguyên. Trước đây nó đã phải thực hiện việc này vào tài khoản và ngăn chặn những trường hợp này bằng tay. Bây giờ, tuy nhiên, họ xuất hiện giao diện AutoClosable. Nó giúp để tự động đóng đối tượng đã sử dụng được đặt trong một khối try. Thông qua phương pháp này nó đã trở thành thuận tiện hơn để viết mã trong khả năng đọc của nó được tăng lên đáng kể.

các lớp học riêng trường hợp ngoại lệ Java

Các tác giả của ngôn ngữ lập trình được mô tả đã tính đến nhiều khía cạnh của các loại thiết kế các trường hợp khẩn cấp. Tuy nhiên, tất cả các tùy chọn để ngăn chặn các kết quả của sự kiện sẽ không hoạt động, vì vậy trong Java thực hiện khả năng xác định trường hợp ngoại lệ của riêng mình, đó là phù hợp với nhu cầu của các mã đặc biệt.

Cách đơn giản nhất để tạo ra - để kế thừa từ thích hợp nhất với bối cảnh đối tượng.

Có xảy ra với kế thừa từ ngoại lệ, lớp được sử dụng để xác định trường hợp ngoại lệ của riêng bạn. Trong MyException có hai cấu trúc - một mặc định, thứ hai - với đối số type msg String.

Sau đó, trong phương pháp f FullConstructors lớp học nào được thực hiện, trong đó có chữ ký ném MyException. Từ khóa này có nghĩa là e có thể ném như Java MyException ngoại lệ. Hơn nữa, trong cơ thể phương pháp sản xuất ra thông tin văn bản để tự giao diện điều khiển và các MyException hệ thực tế, bằng cách ném.

Phương pháp thứ hai là hơi khác nhau từ người đầu tiên là khi bạn tạo một ngoại lệ, nó được thông qua một tham số chuỗi, mà sẽ được phản ánh trong giao diện điều khiển tại bắt. Trong chính rõ ràng là f () và g () được đặt trong một kiểm tra thử và nắm bắt từ khóa cấu hình để chụp MyException. Kết quả của việc xử lý là để hiển thị một thông báo lỗi ra cửa sổ Console:

Do đó nó đến để thêm ngoại lệ Java, bằng tay của mình.

trường hợp ngoại lệ kiến trúc

Như với tất cả các đối tượng trong Java, ngoại lệ cũng được thừa kế và có một cấu trúc phân cấp. Yếu tố gốc rễ của tất cả các lỗi ném vào ngôn ngữ lập trình này là lớp java.lang.Throwable. Thừa hưởng từ ông hai loại - Lỗi và ngoại lệ.

Lỗi - tín hiệu lỗi nghiêm trọng và được đánh dấu ngoại lệ Java. Ngăn chặn và xử lý dữ liệu như vậy trong nhiều trường hợp xảy ra ở giai đoạn thiết kế và không có nhu cầu giới thiệu trong các mã ứng dụng cuối cùng.

Lớp thường được sử dụng nhất để tạo và phân tích các trường hợp ngoại lệ là ngoại lệ. Trong đó, lần lượt, được chia thành nhiều nhánh, bao gồm RuntimeException. Bởi RuntimeException những ngoại lệ thời gian chạy, có nghĩa là, xảy ra trong chương trình. Tất cả các lớp thừa kế từ nó là chưa được kiểm chứng.

Thường có những ngoại lệ

Trong trường hợp ngoại lệ Java, danh sách được trình bày dưới đây, được sử dụng thường xuyên nhất, vì vậy bạn nên mô tả mỗi người một cách chi tiết:

  • ArithmeticException. Chúng bao gồm các lỗi liên quan đến phép tính số học. Ví dụ rõ ràng nhất - phép chia cho không.
  • ArrayIndexOutOfBoundsException - đơn kháng cáo với số phần tử mảng vượt quá tổng số chiều dài của nó.
  • ArrayStoreException - cố gắng gán một loại nguyên tố không tương thích của mảng.
  • ClassCastException - một nỗ lực để mang lại những sai lầm kiểu này sang kiểu khác.
  • IllegalArgumentException - sử dụng lập luận sai trong lời gọi phương thức.
  • NegativeArraySizeException - một ngoại lệ khi bạn tạo một mảng có kích thước tiêu cực.
  • NullPointerException - lạm dụng tài liệu tham khảo để null.
  • NumberFormatException - xảy ra khi chuyển đổi chuỗi sai để nguyên.
  • UnsupportedOperationException - vận hành không được hỗ trợ.

Những ví dụ này đại diện cho các loại ngoại lệ Java không được kiểm soát. Nhưng để nhìn kiểm tra:

  • không tìm thấy Class - ClassNotFoundException.
  • IllegalAcccessException - hạn chế truy cập vào các lớp.
  • InterruptedException - sự gián đoạn của dòng chảy.
  • NoSuchFieldException - không có trường bắt buộc.

Việc giải thích các trường hợp ngoại lệ

Nói về trường hợp ngoại lệ thường gặp cần lưu ý rằng việc giải thích của họ trong việc thiết kế, có thể được nhận thức không chính xác. Tiếp theo là một danh sách ngắn giải thích chi tiết hơn, nơi có thể có một tình huống bất ngờ.

NullPointerException. Trường hợp đầu tiên khi có một ngoại lệ, là để thu hút một tham chiếu đến một đối tượng mà là tương đương với giá trị null. Nó cũng kéo dài đến zero phương pháp lớp ví dụ. NullPointerException có thể được ném trong trường hợp nhận được một chiều dài mảng null bình đẳng. Để tránh tình huống như vậy sẽ định kỳ kiểm tra các trang web trên null.

ArrayIndexOutOfBoundsException. Bất kỳ chương trình không thể tồn tại mà không cần dùng mảng. Theo đó, cầu viện thường xuyên để nó có thể tạo ra và báo lỗi. Ngoại lệ xảy ra khi một nhà phát triển cố gắng truy cập vào một phần tử mảng mà không có trong danh sách chỉ mục. Ví dụ, giá trị đề nghị là trên hoặc dưới số không dài. Rất thường là kết quả của sự kiện là trong mảng bắt đầu với số điểm là zero.

phát hiện

Xử lý ngoại lệ Java - một môi trường công cụ mạnh mẽ, tạo điều kiện rất nhiều công việc của các lập trình viên và cho phép ông tạo ra một sạch sẽ và không có lỗi mã. Về việc áp dụng chức năng cách trơn tru và ổn định phụ thuộc vào tình trạng và uy tín của nhà phát triển.

Tất nhiên, trong một ít hay nhiều chương trình đơn giản để theo dõi những tình huống bất thường dễ dàng hơn nhiều. Nhưng trong phức hợp tự động lớn cho một vài trăm ngàn dòng nó có thể chỉ là kết quả của thử nghiệm lâu dài và gỡ lỗi.

Đối với Java lỗi ngoại lệ mà từ đó phát sinh trong một số ứng dụng, một số công ty cung cấp một phần thưởng khi họ thấy những người đam mê. Đặc biệt đánh giá cao bởi những người gây ra một sự vi phạm của phần mềm chính sách bảo mật.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 vi.delachieve.com. Theme powered by WordPress.