Java thử bắt cuối cùng Khối – thử bắt java cuối cùng

Các khối Java try catch cuối cùng giúp viết mã ứng dụng có thể tạo ra các ngoại lệ trong thời gian chạy và cho chúng tôi cơ hội khôi phục từ ngoại lệ.

Bạn đang xem : try catch cuối cùng của java

Các khối thử, bắt và cuối cùng của Java giúp viết mã ứng dụng có thể ném < span> exceptions trong thời gian chạy và cho chúng tôi cơ hội khôi phục ngoại lệ bằng cách thực thi logic ứng dụng thay thế hoặc xử lý ngoại lệ một cách khéo léo để báo cáo lại cho người dùng. Nó giúp ngăn chặn sự cố ứng dụng xấu xí.

1. Java thử, bắt và cuối cùng là các khối

1.1. khối thử

Khối thử chứa mã ứng dụng dự kiến ​​sẽ hoạt động trong điều kiện bình thường. Ví dụ: đọc tệp, ghi vào cơ sở dữ liệu hoặc thực hiện các hoạt động kinh doanh phức tạp.

Một try bock được viết bằng từ khóa try theo sau là dấu ngoặc nhọn.

thử {
    // mã ứng dụng
}

1.2. khối bắt

(Các) khối bắt tùy chọn theo sau khối thử và PHẢI xử lý các ngoại lệ đã kiểm tra do khối try ném ra cũng như bất kỳ ngoại lệ nào có thể bỏ chọn.

thử {
    //mã số
}
bắt (Ngoại lệ e) {
    // xử lý ngoại lệ
}

Một ứng dụng có thể gặp trục trặc theo N cách khác nhau. Đó là lý do tại sao chúng tôi có thể liên kết nhiều khối bắt với một khối thử duy nhất. Trong mỗi khối bắt, chúng ta có thể xử lý một hoặc nhiều ngoại lệ cụ thể theo một cách riêng.

Khi một khối bắt xử lý ngoại lệ, các khối bắt tiếp theo sẽ không được thực thi. Điều khiển thay đổi trực tiếp từ khối bắt được thực thi để thực thi phần còn lại của chương trình, bao gồm cả khối cuối cùng.

thử {
    //mã số
}
bắt (NullPointerException e) {
    // xử lý ngoại lệ
}
bắt (NumberFormatException e) {
    // xử lý ngoại lệ
}
bắt (Ngoại lệ e) {
    // xử lý ngoại lệ
}

1.3. khối cuối cùng

Một khối cuối cùng tùy chọn cho chúng tôi cơ hội chạy mã mà chúng tôi muốn thực thi EVERYTIME khối thử bắt được hoàn thành – có lỗi hoặc không có bất kỳ lỗi nào.

Các câu lệnh khối cuối cùng được đảm bảo thực thi ngay cả khi chúng tôi không xử lý thành công ngoại lệ trong khối catch.

thử {
// mở tệp
    //Đọc tài liệu
}
bắt (Ngoại lệ e) {
    // xử lý ngoại lệ trong khi đọc tệp
}
cuối cùng {
// đóng tệp
}

1.4. chỉ khối thử là bắt buộc

Xin lưu ý rằng chỉ khối thử là bắt buộc trong khi khối bắt và cuối cùng là tùy chọn. Với khối try, chúng ta có thể sử dụng khối catch hoặc khối cuối cùng nếu cần.

Xem Thêm  Hướng dẫn cần thiết về khóa ngoại MySQL bằng các ví dụ thực tế - khóa ngoại sql của tôi

Có thể có cả hai cách kết hợp dưới đây trong Java. Cả hai phiên bản đều hợp lệ .

thử {

}
bắt (Ngoại lệ e) {
    
}
thử {

}
cuối cùng {

}

2. Cách xử lý ngoại lệ trong java hoạt động như thế nào?

Trong các trường hợp bình thường, khi có một ngoại lệ xảy ra trong thời gian chạy, JVM sẽ bao bọc thông tin lỗi trong một phiên bản của loại phụ Có thể ném . Đối tượng ngoại lệ này tương tự như các đối tượng Java khác và có các trường và phương thức.

Chỉ khác là JVM kiểm tra sự hiện diện của chúng và chuyển quyền kiểm soát cho khối catch có thể xử lý điều này loại ngoại lệ hoặc đó là các loại lớp mẹ .

try catch last flow

Khi ở trong ứng dụng, không tìm thấy khối bắt ngoại lệ, uncaught exception được xử lý bởi trình xử lý ngoại lệ mặc định ở cấp JVM . Nó báo cáo ngoại lệ cho người dùng và chấm dứt ứng dụng.

3. Các luồng thực thi khác nhau với các khối thử, bắt và cuối cùng

Hãy xem một số ví dụ để hiểu cách thực thi sẽ diễn ra trong các trường hợp khác nhau.

3.1. try, catch và cuối cùng là các khối – KHÔNG có ngoại lệ nào xảy ra

Nếu không có ngoại lệ nào xảy ra, thì JVM sẽ chỉ thực thi khối cuối cùng. Khối bắt sẽ bị bỏ qua.

thử
{
    System.out.println ("khối thử");
}
bắt (Ngoại lệ e)
{
    System.out.println ("khối bắt");
}
cuối cùng
{
    System.out.println ("khối cuối cùng");
}

Đầu ra của chương trình.

thử khối
cuối cùng chặn

3.2. try, catch và cuối cùng là các khối – ngoại lệ đã xảy ra

Nếu có một ngoại lệ xảy ra trong khối try, thì JVM sẽ thực thi khối catch trước rồi đến khối cuối cùng.

thử
{
    System.out.println ("khối thử");

    ném NullPointerException mới ("Null xảy ra");
}
bắt (Ngoại lệ e)
{
    System.out.println ("khối bắt");
}
cuối cùng
{
    System.out.println ("khối cuối cùng");
}

Đầu ra của chương trình.

thử khối
bắt khối
cuối cùng chặn

3.3. thử và cuối cùng các khối – ngoại lệ KHÔNG được xử lý

Nếu ngoại lệ không được xử lý bởi bất kỳ khối bắt được cung cấp nào, trình xử lý ngoại lệ mặc định của JVM sẽ xử lý nó. Trong trường hợp này, khối cuối cùng sẽ được thực thi theo sau bởi cơ chế xử lý ngoại lệ mặc định.

thử
{
    System.out.println ("khối thử");

    ném NullPointerException mới ("Null xảy ra");
}
cuối cùng
{
    System.out.println ("khối cuối cùng");
}

Đầu ra của chương trình.

thử khối
cuối cùng chặn

Ngoại lệ trong chủ đề "nhân vật chính''
java.lang.NullPointerException: Null xảy ra
tại com.howtodoinjava.Main.main (Main.java:12)

3.4. khối try, catch và cuối cùng – nhiều khối catch

Nếu có nhiều khối catch được liên kết với khối try, thì ngoại lệ sẽ được xử lý bởi khối catch đầu tiên theo trình tự có thể xử lý loại ngoại lệ hoặc đó là các loại cha .

Xem Thêm  Lô phân tán Python - phân tán âm mưu trong python

Ví dụ: xử lý khối bắt IOException , có thể xử lý các ngoại lệ của loại FileNotFoundException cũng vì FileNotFoundException mở rộng IOException .

thử
{
    System.out.println ("khối thử");
    
    ném NullPointerException mới ("null xảy ra");
}
bắt (NumberFormatException e)
{
    System.out.println ("bắt khối 1");
}
bắt (NullPointerException e)
{
    System.out.println ("bắt khối 2");
}
bắt (Ngoại lệ e)
{
    System.out.println ("bắt khối 3");
}
cuối cùng
{
    System.out.println ("khối cuối cùng");
}

Đầu ra của chương trình.

thử khối
bắt khối 2
cuối cùng chặn

3.5. try, catch và cuối cùng là các khối – ngoại lệ được ném từ khối catch

Có thể có trường hợp có một ngoại lệ trong khi xử lý một ngoại lệ khác trong khối catch. Nó sẽ được xử lý như thế nào?

Trong trường hợp ngoại lệ trong khối catch, việc thực thi được chuyển sang khối cuối cùng (nếu có) được liên kết với khối catch tương ứng. Sau đó, ngoại lệ được truyền trong ngăn xếp cuộc gọi phương thức để tìm một khối bắt có thể xử lý ngoại lệ này.

Nếu tìm thấy khối bắt như vậy thì ngoại lệ sẽ được xử lý, nếu không thì trình xử lý ngoại lệ mặc định của JVM sẽ xử lý ngoại lệ và chấm dứt ứng dụng .

thử
{
    System.out.println ("khối thử");
    
    ném NullPointerException mới ("NullPointerException xảy ra");
}
bắt (NullPointerException e)
{
    System.out.println ("bắt khối 1");
    
    ném NumberFormatException mới ("NumberFormatException xảy ra");
}
bắt (Ngoại lệ e)
{
    System.out.println ("bắt khối 2");
}
cuối cùng
{
    System.out.println ("khối cuối cùng");
}

Đầu ra của chương trình.

thử khối
bắt khối 1
cuối cùng chặn

Ngoại lệ trong chủ đề "nhân vật chính''
java.lang.NumberFormatException: NumberFormatException xảy ra
tại com.howtodoinjava.Main.main (Main.java:18)

4. try-with-resources

Đối với các tài nguyên Có thể đóng được , chẳng hạn như luồng, Java SE 7 đã giới thiệu các câu lệnh try-with-resources là cách được khuyến nghị để xử lý các trường hợp ngoại lệ trong các trường hợp đã đề cập. Theo cách tiếp cận này, chúng tôi không bắt buộc phải đóng các luồng và JVM sẽ làm điều đó cho chúng tôi. Nó giúp loại bỏ sự cần thiết của các khối cuối cùng.

Trong try-with-resources, một tài nguyên được mở trong khối try bên trong dấu ngoặc nhỏ và cuối cùng khối hoàn toàn biến mất.

thử (BufferedReader br = new BufferedReader (FileReader mới ("C: /temp/test.txt")))
{
    Chuỗi sCurrentLine;
    while ((sCurrentLine = br.readLine ())! = null)
    {
        System.out.println (sCurrentLine);
    }
}
bắt (IOException e)
{
    e.printStackTrace ();
}

Đọc thêm: Java 7 dùng thử với tài nguyên

Xem Thêm  Chương trình Java để tạo tệp mới - java tạo tệp có nội dung

Chúc bạn học vui vẻ !!

Bài đăng này có hữu ích không?

Hãy cho chúng tôi biết nếu bạn thích bài đăng. Đó là cách duy nhất chúng tôi có thể cải thiện.


Xem thêm những thông tin liên quan đến chủ đề thử bắt java cuối cùng

Java Programming Tutorial – 65 – The Final Check Box Program

alt

  • Tác giả: thenewboston
  • Ngày đăng: 2009-10-03
  • Đánh giá: 4 ⭐ ( 3216 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Join our community below for all the latest videos and tutorials!

    Website – https://thenewboston.com/
    Discord – https://discord.gg/thenewboston
    GitHub – https://github.com/thenewboston-developers
    Reddit – https://www.reddit.com/r/thenewboston/
    LinkedIn – https://www.linkedin.com/company/thenewbostoncoin/
    Facebook – https://www.facebook.com/thenewbostoncoin/
    Twitter – https://twitter.com/thenewboston_og
    Instagram – https://www.instagram.com/thenewbostoncoin/
    Twitch – https://www.twitch.tv/thenewboston/videos

    TNBC Donations: b6e21072b6ba2eae6f78bc3ade17f6a561fa4582d5494a5120617f2027d38797

Thử. Cuối cùng. Nếu. Không phải. Vô giá trị.

  • Tác giả: helpex.vn
  • Đánh giá: 5 ⭐ ( 2680 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Có một lỗi rất điển hình trong kịch bản “thử / cuối cùng” trước Java7 mà tôi vẫn thấy trong rất nhiều bài đánh giá mã. Tôi chỉ cần viết về nó. Java7 đã giới thiệu một giải pháp, nhưng nó…

Sự khác biệt giữa cuối cùng và hoàn thiện trong Java là gì?

  • Tác giả: vi.firstpond.com
  • Đánh giá: 3 ⭐ ( 4480 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Liệu một khối cuối cùng luôn luôn được thực thi trong Java?

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 4923 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Có, finallysẽ được gọi sau khi thực hiện các khối tryhoặc catchmã. Lần duy nhất finallysẽ…

Java Thử Catch Cuối cùng các khối không có Catch

  • Tác giả: vi.uwenku.com
  • Đánh giá: 4 ⭐ ( 6392 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tôi đang xem xét một số mã mới. Chương trình có một thử và một khối cuối cùng chỉ. Vì khối catch bị loại trừ, khối try làm việc như thế nào nếu nó gặp một ngoại lệ hoặc bất cứ thứ gì có thể ném được?

Sự khác biệt giữa Chung kết, Cuối cùng và Hoàn thiện trong Java

  • Tác giả: vi1.fondoperlaterra.org
  • Đánh giá: 4 ⭐ ( 3052 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sự khác biệt cơ bản giữa cuối cùng, cuối cùng và cuối cùng là cuối cùng là một công cụ sửa đổi truy cập, cuối cùng là một khối và hoàn thiện là một phương thức của một lớp đối tượng.

Mẫu thử, mẫu nắm bắt và mẫu cuối cùng

  • Tác giả: powerautomate.microsoft.com
  • Đánh giá: 5 ⭐ ( 8353 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bao gồm xử lý lỗi cơ bản vào dòng bắt đầu

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình