Rumah > Java > javaTutorial > teks badan

Mekanisme pengendalian pengecualian di Jawa

WBOY
Lepaskan: 2023-06-09 09:37:14
asal
2007 orang telah melayarinya

Java ialah bahasa pengaturcaraan yang cantik dan mudah dibaca, tetapi ralat pasti akan berlaku semasa proses pembangunan. Untuk menyelesaikan ralat ini, Java memperkenalkan mekanisme pengendalian pengecualian. Mekanisme ini membolehkan pengaturcara mengesan masalah dan mengambil tindakan yang sewajarnya semasa program sedang berjalan. Artikel ini akan membincangkan mekanisme pengendalian pengecualian dalam Java, termasuk cara membaling, menangkap dan mengendalikan pengecualian.

Apakah pengecualiannya?

Pengecualian ialah peristiwa yang menunjukkan ralat berlaku semasa pelaksanaan program. Contohnya, pembahagian dengan sifar, rujukan penuding nol atau input tidak sah mungkin berlaku. Di Java, pengecualian merujuk kepada masalah yang dihadapi oleh atur cara semasa pelaksanaan, yang menjejaskan pelaksanaan biasa atur cara dan menyebabkan atur cara ditamatkan secara tidak normal.

Klasifikasi pengecualian dalam Java

Pengecualian dalam Java boleh diklasifikasikan kepada dua jenis: pengecualian yang ditanda dan pengecualian yang tidak ditanda.

  • Pengecualian yang disemak: adalah pengecualian yang mesti disemak pada masa penyusunan Jika pengecualian sedemikian mungkin dilemparkan dalam kod, ia mesti dikendalikan secara eksplisit. Sebagai contoh, IOException dan SqlException diperiksa pengecualian.
  • Pengecualian tidak ditandai: adalah pengecualian yang tidak dapat ditangkap semasa penyusunan kod. Pengecualian ini biasanya disebabkan oleh ralat pengaturcara atau dijana oleh masa jalan Java. Contohnya, NullPointerException dan ArrayIndexOutOfBoundsException.

Bagaimana untuk membuang pengecualian?

Apabila masalah ditemui dalam program, anda boleh menggunakan pernyataan lontaran untuk membuang pengecualian.

throw new Exception("发生异常了");
Salin selepas log masuk

Dalam contoh ini, objek Pengecualian baharu dilemparkan. Jika pernyataan lontaran diikuti oleh objek kelas pengecualian tersuai, pengecualian yang ditentukan akan dilemparkan. Contoh berikut menunjukkan cara untuk menyesuaikan pengecualian dan menggunakannya dalam atur cara:

public class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}
Salin selepas log masuk

Gunakan pengecualian tersuai dalam atur cara:

public void checkAge(int age) throws CustomException {
    if (age < 0 || age > 100) {
        throw new CustomException("年龄不在合法范围内");
    }
    //继续执行其他代码
}
Salin selepas log masuk
Salin selepas log masuk

Dalam contoh di atas, jika umur kurang daripada 0 atau lebih daripada 100, CustomException dilemparkan.

Bagaimana untuk menangkap pengecualian?

Salah satu cara untuk mengendalikan pengecualian adalah dengan "menangkap"nya. Blok cuba-tangkap dalam Java digunakan untuk menangkap pengecualian.

try {
    //需要尝试执行的代码
} catch (Exception e) {
    //处理异常的代码
}
Salin selepas log masuk

Dalam contoh ini, sebarang kod yang mungkin membuang pengecualian boleh diletakkan dalam blok percubaan. Apabila melaksanakan kod dalam blok cuba, jika pengecualian berlaku, program melompat ke blok tangkapan. Dalam blok tangkapan, pengaturcara boleh mengambil langkah yang diperlukan untuk mengendalikan pengecualian. Berikut ialah program Java ringkas yang menunjukkan pemprosesan blok cuba-tangkap.

public static void main(String[] args) {
    try {
        int i = 1/0;
    } catch (Exception e) {
        System.out.println("发生异常了:" + e);
    }
}
Salin selepas log masuk

Dalam contoh di atas, atur cara akan cuba membahagikan 1 dengan 0. Oleh kerana ini tidak dibenarkan, ArithmeticException dilemparkan. Blok tangkapan akan menangkap pengecualian ini dan mengeluarkan "Pengecualian berlaku: java.lang.ArithmeticException: / by zero" pada konsol.

Bagaimana untuk mengendalikan pengecualian?

Satu cara untuk mengendalikan pengecualian adalah dengan membuangnya terus daripada kaedah. Ini biasanya akan ditangkap dan dikendalikan oleh pemanggil. Satu lagi cara untuk mengendalikan pengecualian ialah menggunakan kaedah dengan klausa lontaran untuk menentukan pengecualian yang perlu dikendalikan. Berikut ialah contoh:

public void checkAge(int age) throws CustomException {
    if (age < 0 || age > 100) {
        throw new CustomException("年龄不在合法范围内");
    }
    //继续执行其他代码
}
Salin selepas log masuk
Salin selepas log masuk

Klausa lontaran yang dinyatakan selepas tandatangan kaedah memberitahu pemanggil bahawa pengecualian yang ditanda mesti ditangkap atau dibuang. Jika pemanggil tidak mengendalikan pengecualian ini, program akan menamatkan dan mengeluarkan mesej pengecualian.

Cara lain untuk mengendalikan pengecualian ialah menggunakan blok akhirnya. Kod dalam blok akhirnya dilaksanakan selepas blok cuba dan tangkap dan akan dilaksanakan tanpa mengira sama ada pengecualian berlaku.

try {
    //需要尝试执行的代码
} catch (Exception e) {
    //处理异常的代码
} finally {
    //无论是否发生异常都会执行的代码
}
Salin selepas log masuk

Contoh penggunaan blok akhirnya adalah untuk menutup fail atau sumber rangkaian yang terbuka. Memandangkan sumber ini terhad di Jawa, anda perlu ingat untuk menutupnya untuk melepaskannya.

BufferedReader reader = null;
try {
    reader = new BufferedReader(new FileReader("文件名"));
    //对文件执行一些操作
} catch (Exception e) {
    //处理异常的代码
} finally {
    try {
        if (reader != null) {
            reader.close();
            reader = null;
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Salin selepas log masuk

Dalam contoh ini, kod dalam blok cubaan membuka fail dan menjalankan beberapa operasi. Jika ralat berlaku dalam blok cuba, program melompat ke blok tangkapan dan mengendalikan pengecualian. Tidak kira sama ada pengecualian berlaku dalam blok cuba, kod dalam blok akhirnya menutup fail yang terbuka.

Kesimpulan

Mekanisme pengendalian pengecualian Java membolehkan pengaturcara mengesan ralat dan mengambil langkah yang sesuai semasa program sedang berjalan. Artikel ini membincangkan klasifikasi pengecualian Java, kaedah melontar pengecualian, menangkap pengecualian, dan mengendalikan pengecualian secara mendalam, dan menyediakan beberapa contoh khusus. Apabila menulis kod Java, pengaturcara harus mengikut amalan terbaik untuk memastikan kestabilan dan kebolehpercayaan kod.

Atas ialah kandungan terperinci Mekanisme pengendalian pengecualian di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan