Rumah > Java > javaTutorial > teks badan

Kuasai sepenuhnya prinsip dan aplikasi mekanisme pengendalian pengecualian Java

WBOY
Lepaskan: 2022-03-29 12:03:54
ke hadapan
1732 orang telah melayarinya

Artikel ini membawa anda pengetahuan yang berkaitan tentang java, yang terutamanya memperkenalkan prinsip dan isu berkaitan aplikasi mekanisme pengendalian pengecualian, termasuk Pengecualian dan Ralat, sintaks trycatch dan perintah pelaksanaan trycatch Tunggu, saya harap ia membantu semua orang.

Kuasai sepenuhnya prinsip dan aplikasi mekanisme pengendalian pengecualian Java

Kajian yang disyorkan: "tutorial pembelajaran java" Mereka tidak asing dengannya, dan mereka semua sangat mahir menggunakannya.

Apabila ralat berlaku semasa menjalankan program, pengecualian akan dilemparkan adalah lebih baik untuk membuang pengecualian daripada menamatkan program.

Anda juga boleh melakukan operasi trycatch apabila diketahui bahawa ralat akan berlaku dan melakukan operasi unik tertentu apabila pengecualian berlaku.

1. Pengecualian dan Ralat

Pengecualian dan Ralat kedua-duanya diwarisi daripada kelas Boleh Dibuang Di Java, hanya contoh jenis Boleh dilemparkan Jenis komponen asas mekanisme pengendalian pengecualian. Pengecualian ialah pengecualian yang boleh diramal, yang boleh diperoleh dan diproses di luar perniagaan.

Ralat ialah pengecualian yang tidak dapat diramalkan Apabila ralat berlaku, ia secara langsung akan menyebabkan JVM tidak dapat mengendalikannya.

Pengecualian dibahagikan kepada pengecualian bertanda dan pengecualian tidak disemak.

Pengecualian yang diperiksa mesti ditangkap menggunakan tangkapan cuba (contohnya: IOException) semasa menulis kod.

Pengecualian yang tidak disemak, pengkompil tidak akan mengetahui sama ada ini akan berlaku sekali, seperti pengecualian penunjuk nol ini boleh dielakkan melalui spesifikasi semasa menulis atau menggunakan kod. Sebagai contoh, fungsi findbugs sts boleh mengesan pengecualian penuding nol dalam kod.

2. Apakah perbezaan antara NoClassDefFoundError dan ClassNotFoundException?

NoClassDefFoundError ialah ralat yang dilemparkan oleh JVM apabila ia tidak dapat mencari kelas yang sepadan apabila memuatkan kelas melalui classpath semasa runtime. ClassNotFoundException: Jika pengecualian ini mungkin berlaku semasa penyusunan, ia mesti dibuang semasa penyusunan.

Senario NoClassDefFoundError:

Kelas atau balang yang kelas bergantung tidak wujud

Fail kelas wujud, tetapi dalam domain yang berbeza. Hanya tidak dapat mencari
  1. ClassNotFoundException senario:
Apabila memanggil kaedah forName kelas, kelas yang ditentukan tidak boleh ditemui

findSystemClass dalam ClassLoader ( ) kaedah, kelas yang ditentukan tidak dapat ditemui
  1. 2. sintaks trycatch
public static void main(String[] args) {
    try {
        Class.forName("test");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }}
Salin selepas log masuk
1 pernyataan cuba

cuba A melampirkan bahagian kod dalam pendakap kerinting yang mungkin membuang satu atau lebih pengecualian.

2. Pernyataan Tangkapan

Parameter pernyataan tangkapan adalah serupa dengan pengisytiharan kaedah, termasuk jenis pengecualian dan objek pengecualian. Jenis pengecualian mestilah subkelas kelas Boleh Lempar, yang menentukan jenis pengecualian yang diproses oleh pernyataan tangkapan Objek pengecualian dijana dan ditangkap oleh sistem masa jalan dalam blok kod yang ditentukan oleh kurungan kerinting objek, di mana kaedah Objek boleh dipanggil. Terdapat berbilang kenyataan tangkapan untuk mengendalikan jenis pengecualian yang berbeza masing-masing. Sistem masa jalan Java mengesan jenis pengecualian yang dikendalikan oleh setiap pernyataan tangkapan dari atas ke bawah sehingga pernyataan tangkapan dengan jenis yang sepadan ditemui. Di sini, pemadanan jenis bermaksud jenis pengecualian yang dikendalikan oleh tangkapan adalah sama persis dengan jenis objek pengecualian yang dijana atau kelas induknya Oleh itu, susunan penyata tangkapan hendaklah daripada khas kepada umum.

3 Penyataan akhirnya

Tidak kira sama ada pengecualian dilemparkan dalam percubaan, kod dalam penyataan akhirnya akan dilaksanakan blok kenyataan sepatutnya untuk melepaskan Sumber yang dipohon.

4. melontar pernyataan

lontaran sentiasa muncul selepas pengepala fungsi untuk menunjukkan pengecualian yang mungkin dilemparkan oleh kaedah.

5. Pernyataan lontaran

serupa dengan lontaran, tetapi lokasi lontaran diletakkan dalam modul tangkapan dilaksanakan Kod selepas lemparan Tidak lagi dilaksanakan, kecuali akhirnya.

6. Pengecualian melontar

7 Pengecualian penangkapan

public void test() throws Exception{
    throw new Exception();};
Salin selepas log masuk

3 jujukan

bermula dari baris pertama kod dalam percubaan Apabila kod yang menyebabkan pengecualian dilaksanakan, JVM akan mencipta objek pengecualian.
try{
    //代码区}catch(Exception e){
    log.error("error: {}", e);}finally{
    //最后必须执行的部分}
Salin selepas log masuk
Tentukan sama ada tangkapan boleh menangkap objek pengecualian yang dibuat oleh jvm

Jika ditangkap, lompat ke blok kod tangkapan tanpa menamatkan program dan teruskan dengan logik kod dalam tangkapan ia tidak boleh ditangkap, cetak maklumat pengecualian secara terus dan tamatkan program.


Jika tiada pengecualian dalam percubaan, kod dalam percubaan akan dilaksanakan, langkau tangkapan dan masukkan blok kod akhirnya.

4. Prinsip pengendalian pengecualian

Jika pengecualian yang perlu dikesan dilemparkan dalam kaedah, ia mesti diisytiharkan dalam kaedah, jika tidak, ia mesti ditangkap dengan cuba-tangkap dalam kaedah, jika tidak penyusunan akan gagal.
Jika fungsi yang mengisytiharkan pengecualian dipanggil, sama ada cuba-tangkap atau lempar, jika tidak, kompilasi gagal.
Bila hendak menangkap dan bila hendak membuang? Kandungan berfungsi boleh diselesaikan, tetapi ia tidak boleh diselesaikan dengan menggunakan tangkapan Gunakan lontaran untuk memberitahu pemanggil bahawa ada pemanggil untuk menyelesaikannya.
Jika fungsi melontarkan berbilang pengecualian, mesti terdapat berbilang tangkapan sepadan untuk pemprosesan disasarkan semasa memanggil.

Pembelajaran yang disyorkan: "tutorial java"

Atas ialah kandungan terperinci Kuasai sepenuhnya prinsip dan aplikasi mekanisme pengendalian pengecualian Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
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