Rumah  >  Artikel  >  Java  >  Java RuntimeException

Java RuntimeException

WBOY
WBOYasal
2024-08-30 16:14:06259semak imbas

Pengecualian ialah yang dilemparkan apabila sebarang ralat ditemui semasa menjalankan kod dalam Java. RuntimeException dalam java ialah yang dipanggil kelas induk bagi semua pengecualian dalam bahasa pengaturcaraan Java, yang sama ada akan ranap atau rosak semasa pelaksanaan program atau aplikasi apabila ia berlaku. Tetapi berbanding dengan pengecualian lain, ini berbeza dan tidak boleh ditangkap dengan menyatakan dalam kod seperti untuk yang lain.

Menggunakan RuntimeException dalam Java

Ia tergolong dalam kelas induk Pengecualian dalam susunan Objek -> Boleh dibaling -> Pengecualian ->RuntimeException. Oleh itu ia boleh dipanggil sebagai kelas super semua pengecualian yang boleh dilemparkan semasa menjalankan operasi biasa JVM (Java Virtual Machine). RuntimeException ini dan subkelasnya berada di bawah kelas pengecualian yang dipanggil "pengecualian tidak disemak". Ini tidak boleh dan tidak perlu dinyatakan dalam klausa pembina atau kaedah.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Pembina RuntimeException dalam Java

Di bawah ialah pembina RuntimeException:

1. RuntimeException (): Ini memberikan kita pengecualian masa jalan baharu yang mempunyai mesej terperinci sebagai batal.

Sintaks:

public RuntimeException()

Punca di sini tidak akan dimulakan dan boleh dilakukan dengan memanggil kelas Throwable.initCause (java.lang.Throwable).

2. RuntimeException (String msg): Ini juga membuang pengecualian masa jalan baharu tetapi mempunyai mesej terperinci yang telah kami sediakan dalam kod Java.

Sintaks:

public RuntimeException (String msg)

Sama seperti fungsi di atas, punca tidak akan dimulakan secara lalai, dan perkara yang sama boleh dilakukan dengan memanggil Throwable.initCause (java.lang.Throwable). Mesej di sini ialah mesej terperinci, yang akan disimpan untuk diambil semula kemudian melalui kaedah Throwable.getMessage ().

3. RuntimeException (String msg, Throwable cause): Ini membuang pengecualian masa jalan baharu dengan mesej ralat yang ditentukan dan puncanya.

Sintaks:

public RuntimeException (String message, Throwable cause)

Perhatikan bahawa mesej di sini tidak disertakan secara automatik dan perlu dinyatakan dengan jelas. Di sini, puncanya diambil daripada fungsi Throwable.getCause () dan di sini nilai nol dibenarkan, yang melambangkan bahawa puncanya tidak wujud atau tidak diketahui.

4. RuntimeException (String msg, Throwable cause, booleanenableSupp, booleanwritableStack): Ini memberikan pengecualian masa jalan baharu dengan mesej ralat yang diterangkan secara terperinci, punca khususnya, enableSupp mewakili sama ada penindasannya telah didayakan atau dilumpuhkan, dan writableStack ialah surih tindanan jika ia didayakan atau dilumpuhkan.

Sintaks:

protected RuntimeException (String message,
Throwable cause,
booleanenableSuppression,
booleanwritableStackTrace)

Ini memberikan pengecualian masa jalan baharu dengan sebab yang ditakrifkan dan mesej butiran yang ditentukan, puncanya, sama ada penindasan didayakan atau dilumpuhkan dan jika surih tindanan boleh tulis telah didayakan atau tidak. Mesej di sini ialah mesej khusus yang kami paparkan, punca yang menunjukkan sama ada ia wujud atau tidak, enableSuppression menunjukkan sama ada penindasan dibenarkan atau tidak dan writableStackTrace menentukan sama ada surih tindanan harus boleh ditulis atau tidak.

5. RuntimeException (Punca Boleh Lempar): Ini membuang pengecualian masa jalan baharu dengan sebab yang diberikan dan mesej ralat terperinci yang ditentukan bagi keadaan (cause==null ? null : cause.toString ()), yang pada asasnya mempunyai kelas dan khususnya sebab mesej.

Sintaks:

public RuntimeException (Throwable cause)

Puncanya disimpan untuk diambil kemudian oleh kaedah Throwable.getCause () dan apabila nilai nol dibenarkan, ia menunjukkan bahawa puncanya tidak diketahui.

Bagaimana untuk Mengelakkan RuntimeException dalam Java?

Kaedah yang kami lakukan untuk mengelakkan pengecualian tersebut dipanggil pengendalian pengecualian. Ia adalah salah satu perkara paling asas yang perlu diingat oleh pembangun semasa pengekodan kerana keseluruhan kod akan menjadi sia-sia jika pengecualian berlaku dan jika ia tidak dapat mengendalikan perkara yang sama.

Kami menggunakan klausa tertentu yang dipanggil lontaran dan lontaran untuk mengendalikan pengecualian yang diperiksa di Jawa. Pengecualian masa jalan biasanya berlaku kerana input yang diberikan rosak dan menyebabkan pengecualian seperti ArrayIndexOutOfBoundsException, IllegalArgumentException, NumberFormatException atau NullPointerException. Termasuk ralat dalam kod ini, pengendalian tidak membuat apa-apa perubahan, tetapi ia boleh digunakan untuk meminta dokumentasi sebagai amalan yang baik.

Kami boleh mentakrifkan pengecualian Runtime seperti di bawah:

public class AuthenticateUser extends RuntimeException {
public AuthenticateUser (String msg) {
super (msg);
}
}

Contoh

Di bawah ialah contoh 4 jenis utama pengecualian Runtime:

Contoh #1 – ArrayIndexOutOfBoundsException

Ini berlaku apabila kami meminta nilai indeks tatasusunan yang tidak sah atau tidak tersedia.

Code:

public class Main
{
public static void main (String[] args)
{
// Random array of numbers
intip[] = {16, 17, 18, 19, 20};
for (inti=0; i<=ip.length; i++)
System.out.println (ip[i]);
}
}

Output:

Java RuntimeException

As seen in this example, in the input array has its index value from 0 to 4. But in this for loop, the length of the array retrieved will be 5, and when that is tried to access in the array, it will throw the ArrayIndexOutOfBoundsException during RunTime of the code.

Example #2 – IllegalArgumentException

The cause of this exception is when the argument format provided is invalid.

Code:

public class Main {
inti;
public void getMark (int score) {
if (score < 0 || score > 100)
throw new IllegalArgumentException (Integer.toString (score));
else
i = score;
}
public static void main (String[] args) {
Main t = new Main ();
t.getMark (30);
System.out.println (t.i);
Main t1 = new Main ();
t1.getMark (120);
System.out.println (t1.i);
}
}

Output:

Java RuntimeException

Here we know that the maximum value of a percentage value is 100. So when we pass the value as 101, we get the Illegal argument exception during run time.

Example #3 – NumberFormatException

This exception is usually thrown when a string is to be converted to a numeric value like either float or integer value, but the form of the string given as input is either illegal or inappropriate.

Code:

public class Main {
// giving input string as null
public static void main (String[] args) {
inti = Integer.parseInt (null);
}
}

Output:

Java RuntimeException

In this example, we are giving the input string to be parsed into an integer as null. Hence the number format exception is thrown.

Example #4 – NullPointerException

This exception occurs when a reference object that the variable is referring to is null.

Code:

public class Main {
public static void main (String[] args) {
Object reference = null;
reference.toString ();
}
}

Output:

Java RuntimeException

In this example, we are creating an object called reference having a null value. The same object is being called for an operation, and hence this error is thrown.

Conclusion: Runtime exceptions are thrown at runtime and hence difficult to be detected during compile time. They are difficult to handle, and the throws clause can only be used to define them but not catch them.

Recommended Article

This is a guide to Java RuntimeException. Here we discuss the Introduction and how to Avoid RuntimeException in Java, and it’s Working along with its examples. You can also go through our other suggested articles to learn more –

  1. Introduction to Heap Sort in Java
  2. Overriding in Java (Examples)
  3. Iterators in C# With Advantages and Disadvantages
  4. Top 10 Java Collection Interview Questions

Atas ialah kandungan terperinci Java RuntimeException. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Java IOExceptionArtikel seterusnya:Java IOException