Rumah > Java > javaTutorial > Dalam senario apakah IllegalArgumentException berlaku di Jawa?

Dalam senario apakah IllegalArgumentException berlaku di Jawa?

WBOY
Lepaskan: 2023-06-25 10:21:17
asal
1106 orang telah melayarinya

Sebagai bahasa pengaturcaraan yang penting, Java melibatkan sejumlah besar pengendalian pengecualian semasa proses pelaksanaan, antaranya IllegalArgumentException ialah jenis pengecualian yang kerap digunakan. Jadi, bilakah IllegalArgumentException muncul?

IllegalArgumentException bermakna apabila parameter yang menyalahi undang-undang atau salah dihantar ke kaedah, program akan membuang pengecualian ini. Khususnya, IllegalArgumentException biasanya berlaku dalam senario berikut:

1. Ketidakpadanan jenis parameter

Apabila kita menghantar parameter kepada kaedah, jika jenisnya tidak sepadan dengan jenis parameter formal yang ditakrifkan oleh kaedah tersebut, IllegalArgumentException akan dilemparkan tidak normal. Sebagai contoh, jika parameter rentetan jenis dihantar kepada kaedah yang memerlukan hujah jenis integer, pengecualian ini akan dilemparkan.

Kod sampel:

public class Test {
    public static void printNumber(int number) {
        System.out.println(number);
    }
    
    public static void main(String[] args) {
        String str = "123";
        printNumber(str); // 抛出IllegalArgumentException异常
    }
}
Salin selepas log masuk

2 Nilai parameter adalah menyalahi undang-undang

Kadangkala, jika julat nilai parameter diberikan dalam kaedah, jika parameter yang dihantar tidak berada dalam julat ini, IllegalArgumentException juga akan dilemparkan. Sebagai contoh, jika parameter integer kurang daripada 0 dihantar kepada kaedah yang hanya menerima parameter yang lebih besar daripada atau sama dengan 0, pengecualian ini akan dilemparkan.

Kod sampel:

public class Test {
    public static void divide(int dividend) {
        if (dividend < 0) {
            throw new IllegalArgumentException("参数不合法,除数不能为负数");
        }
        System.out.println(10 / dividend);
    }
    
    public static void main(String[] args) {
        divide(-2); // 抛出IllegalArgumentException异常
    }
}
Salin selepas log masuk

3. Pengecualian penuding nol

Jika kaedah tidak membenarkan parameter menjadi batal, tetapi anda melepasi nilai nol, IllegalArgumentException juga akan dilemparkan. Sebagai contoh, jika rentetan kosong dihantar kepada kaedah yang tidak membenarkan rentetan kosong, pengecualian ini akan dibuang.

Kod sampel:

public class Test {
    public static void printString(String str) {
        if (str == null || str.isEmpty()) {
            throw new IllegalArgumentException("参数不合法,必须为非空字符串");
        }
        System.out.println(str);
    }
    
    public static void main(String[] args) {
        String str = null;
        printString(str); // 抛出IllegalArgumentException异常
    }
}
Salin selepas log masuk

Dalam senario di atas, jika IllegalArgumentException berlaku, kami boleh mempertimbangkan untuk menggunakan pernyataan cuba-tangkap untuk menangkap dan mengendalikan pengecualian. Pada masa yang sama, apabila mereka bentuk program, kita juga harus cuba menyeragamkan pemindahan parameter untuk mengelakkan pengecualian yang disebabkan oleh parameter.

Atas ialah kandungan terperinci Dalam senario apakah IllegalArgumentException berlaku di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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