Rumah  >  Artikel  >  Java  >  Kaedah dan langkah untuk menganalisis kejadian Java exception Exception

Kaedah dan langkah untuk menganalisis kejadian Java exception Exception

WBOY
WBOYke hadapan
2023-04-20 15:31:261436semak imbas

1. Kelas induk pengecualian terbesar, Boleh Lempar

Kaedah dan langkah untuk menganalisis kejadian Java exception Exception

Boleh Lempar boleh dibahagikan kepada dua jenis:

Ralat

Pengecualian :

  • Pengecualian masa jalan (pengecualian tidak bertanda)

  • Pengecualian bukan masa jalan (pengecualian yang ditanda)

Ralat: Ralat ialah ralat yang tidak dapat dikendalikan oleh program ini, seperti OutOfMemoryError, ThreadDeath, dll. Apabila pengecualian ini berlaku, jvm akan memilih untuk menamatkan pelaksanaan program

Pengecualian: ialah program Pengecualian yang boleh dikendalikan dengan sendirinya

  • Pengecualian Runtime: Kesemuanya ialah kelas dan subkelas RuntimeException, seperti NullPointerException (penunjuk nol), IndexOutOfBoundException (susun di luar sempadan), dsb. . Pengecualian ini boleh ditangkap dan diproses Atau anda tidak boleh mengendalikan

  • Pengecualian bukan masa jalan: (pengecualian yang ditandakan) Kecuali untuk RuntimeException, jenis tersebut tergolong dalam kelas Exception daripada sintaks program, pengecualian ini mesti diproses Jika tidak dikendalikan, program tidak akan dapat lulus kompilasi, seperti IOException, SQIException

2 pernyataan cuba-tangkap-akhirnya

  • Cuba, tangkap, dan akhirnya tidak boleh digunakan secara bersendirian. Kaedah gabungan ialah: cuba…tangkap, cuba…tangkap&hellip ;akhirnya, cuba…akhirnya boleh ada satu atau lebih tangkapan, dan paling banyak hanya satu pernyataan akhirnya

  • Skop pembolehubah dalam tiga blok pernyataan ialah. blok kod. Mereka tidak boleh mengakses satu sama lain secara berasingan Jika anda ingin boleh diakses dalam ketiga-tiga blok, tentukan pembolehubah di luar blok ini

  • Jika terdapat berbilang blok tangkapan, paling banyak satu. kelas pengecualian akan dipadankan dan kod blok tangkapan akan dilaksanakan, dan blok tangkapan lain tidak akan dilaksanakan, dan susunan padanan adalah dari atas ke bawah , hanya satu kelas pengecualian akan dipadankan paling banyak, yang bermaksud tiada satu pun daripadanya kelas pengecualian boleh dilaksanakan

  • tangkap Kelas pengecualian yang ditangkap tidak boleh diulang, dan pengecualian subkelas mesti ditangkap dahulu dan kemudian kelas induk

  • Tidak kira sama ada terdapat masalah dengan penyataan dalam percubaan, penyataan dalam akhirnya mesti dilaksanakan untuk keluar bersatu untuk program untuk memastikan pengurusan bersatu status program Dalam keadaan biasa, sumber diproses akhirnya Kerja penutupan dan pembersihan

package com.exception;
public class Test {
    public static void main(String[] args) {
        int[] a=new int[5];
        try {
            for (int i = 0; i <10 ; i++) {
                a[i]=i;
            }
            //空指针
        }catch (ArrayIndexOutOfBoundsException e){
            //弹出出错的地方
            System.out.println("1");
            e.printStackTrace();
            //访问异常,数组越界
        }catch (NullPointerException e){
            System.out.println("2");
            e.printStackTrace();
            //无论有错与否,finally最终执行
        } finally {
            System.out.println("都能执行");
        }
        System.out.println("---------------");
    }
}

3. Fungsi akhir-akhir-akhir

  • akhir: kata kunci yang digunakan untuk mentakrifkan pemalar

  • akhirnya: blok kod yang sentiasa boleh dilaksanakan dalam pengecualian

  • finalize(): kutipan sampah, kaedah ini ialah panggilan sistem dan tidak tidak memerlukan pengaturcara Panggil secara manual

4. melontar kata kunci

  • Apabila mentakrifkan kaedah, anda boleh menggunakan pernyataan kata kunci throws untuk menunjukkan bahawa kaedah tidak akan memproses pengecualian, tetapi menyerahkannya kepada pemanggil kaedah untuk mengendalikan pengecualian

  • Apabila mentakrifkan kaedah, kata kunci lontaran boleh digunakan oleh pengaturcara mengikut pilihannya sendiri . Jika digunakan, ia tidak akan diproses apabila menerangkan kaedah

  • pengecualian Jika kaedah utama juga menggunakan kata kunci lontaran, ia bermakna kaedah utama tidak mengendalikan pengecualian, dan akhirnya menyerahkannya kepada jvm. Jvm mengendalikan pengecualian dengan menamatkan program

  • melemparkan pengecualian subkelas, pemanggil kaedah tidak perlu mengendalikan pengecualian.

Nota:

kata kunci baling: Anda boleh menyesuaikan pengecualian, iaitu, melontar pengecualian Apabila dilempar, ia adalah objek kelas pengecualian

5. Perbezaan antara balingan dan balingan

balingan:

  • digunakan selepas pengisytiharan kaedah, diikuti dengan nama kelas pengecualian

  • boleh diikuti oleh berbilang kelas pengecualian, dipisahkan dengan koma

  • menunjukkan bahawa pengecualian dilemparkan, dan pemanggil kaedah mengendalikannya

  • lontaran menunjukkan kemungkinan pengecualian, tetapi tidak semestinya berlaku

lontaran:

  • digunakan dalam badan kaedah, diikuti dengan objek pengecualian

  • hanya boleh membuang satu Objek pengecualian

  • bermaksud melontar pengecualian, dan terdapat kaedah pemprosesan pernyataan badan

  • melemparkan pengecualian pasti akan berlaku, ia bukan satu kemungkinan

perwakilan kod:

package com.test;
public class Throw {
    //throws Exception 代表该方法出现异常时不做处理
    public void deposit(int num1,int num2) throws Exception
    {
        // RuntimeException()是运行时异常最大的父类
        int sum;
        if(num2==0){
            throw new RuntimeException("可以自定义一个异常抛出:除数不能为0");
        }else{
           sum=num1/num2;
        }
    }
}

Atas ialah kandungan terperinci Kaedah dan langkah untuk menganalisis kejadian Java exception Exception. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam