Pengecualian Aritmetik Java ialah sejenis ralat tidak disemak atau hasil luar biasa kod yang dilemparkan apabila operasi aritmetik atau matematik yang salah berlaku dalam kod pada masa jalankan. Masalah masa jalan, juga dikenali sebagai pengecualian, berlaku apabila penyebut ialah integer 0, JVM tidak dapat menilai keputusan, dan oleh itu pelaksanaan program ditamatkan dan pengecualian dinaikkan. Titik di mana pengecualian telah menaikkan atur cara ditamatkan tetapi kod lebih awal untuk itu dilaksanakan dan hasilnya ditunjukkan.
Kelas asas pengecualian aritmetik java ialah lang.ArithmeticException, yang terdapat di bawah java.lang.RuntimeException.
IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Struktur Kelas Asas ArithmeticException:
1. ArithmeticException(): Tentukan Pengecualian Aritmetik tanpa parameter yang diluluskan atau tanpa sebarang mesej terperinci.
2. ArithmeticException(String s): Takrifkan ArithmeticException dengan satu parameter diluluskan.
s: s ialah mesej terperinci
Di bawah ialah dua situasi yang boleh membawa kepada Java ArithmeticException:
Pengecualian aritmetik dalam java dilemparkan apabila kita cuba membahagi nombor dengan sifar. Di bawah ialah kod java untuk menggambarkan operasi:
Kod:
package com.java.exception; public class ArithmeticException { void division(int a,int b) { int c=a/b; System.out.println("Division has been successfully done"); System.out.println("Value after division: "+c); } public static void main(String[] args) { ArithmeticException ex=new ArithmeticException(); ex.division(10,0); } }
Output:
Memandangkan kita telah membahagikan 10 dengan 0, dengan 0 ialah integer dan tidak ditentukan, ia melontar di atas pengecualian aritmetik.
Kod:
//package com.java.exception; public class ArithmeticException { void division(int a,int b) { int c=a/b; System.out.println("Division of a number is successful"); System.out.println("Output of division: "+c); } public static void main(String[] args) { ArithmeticException ex=new ArithmeticException(); ex.division(10,5); } }
Output:
Java mempunyai kelas BigDecimal yang mewakili nombor perpuluhan sehingga bilangan digit ketepatan yang besar. Kelas java ini juga mempunyai beberapa set fungsi yang tidak tersedia dalam jenis data primitif, contohnya, integer, dua kali ganda dan terapung. Fungsi ini menyediakan pembundaran nombor perpuluhan
Di bawah ialah kod untuk ilustrasi:
Kod:
//package com.java.exception; import java.math.BigDecimal; public class ArithmeticException { public static void main(String[] args) { BigDecimal a=new BigDecimal(1); BigDecimal b=new BigDecimal(6); a=a.divide(b); System.out.println(a.toString()); } }
Output:
Dalam kod java yang ditulis di atas, kerana kelas perpuluhan besar tidak tahu apa yang perlu dilakukan dengan output bahagi, maka ia membuang atau menunjukkan pengecualian aritmetik dalam konsol output.
Ia memberikan pengecualian dengan mesej terperinci "Peluasan perpuluhan tidak ditamatkan, tiada perwakilan tepat."
Satu jalan keluar yang mungkin untuk kelas perpuluhan besar di atas ialah dengan menyatakan bilangan tempat perpuluhan yang kita perlukan daripada nombor perpuluhan besar dan kemudian menghadkan nilai kepada bilangan perpuluhan yang pasti. Sebagai contoh, c hendaklah dihadkan kepada 7 tempat perpuluhan dengan membundarkan nombor sehingga 7ke nilai ketepatan perpuluhan.
Kod:
//package co.java.exception; import java.math.BigDecimal; public class ArithmeticException { public static void main(String[] args) { BigDecimal a=new BigDecimal(1); BigDecimal b=new BigDecimal(6); a=a.divide(b,7,BigDecimal.ROUND_DOWN);// limit of decimal place System.out.println(a.toString()); } }
Output:
Konsol output menunjukkan hasil sebagai nombor dengan nilai titik perpuluhanke 7, yang bermaksud pembundaran berfungsi dengan baik.
Mengendalikan pengecualian yang dilemparkan oleh mesin maya java dikenali sebagai pengendalian pengecualian. Kelebihan pengendalian pengecualian ialah pelaksanaan kod tidak dihentikan.
Pengecualian dikendalikan dengan menggunakan gabungan cuba dan tangkap. Blok cuba/tangkap diletakkan dalam kod yang mungkin menjana pengecualian. Kod yang ditulis di dalam blok try/catch dirujuk sebagai kod yang dilindungi.
Sintaks:
try { set of statements//protected code } catch (exceptionname except) { // Catch set of statements---can contain single catch or multiple. }
Code:
public class ExceptionHandled { public static void main(String args[]) { int x =100, y = 0; int z; System.out.println("Hello world"); try { z = x/y; System.out.println(z); } catch(ArithmeticException except) { System.out.println("Avoid dividing by integer 0" + except ); } System.out.println("Hello class"); System.out.println("Hello there"); } }
Output:
Hello class and Hello, there are also printed on the output console apart from Hello world. This is the outcome of the exception handling mechanism.
Explanation:
This article has learned about java arithmetic exception and how to handle the exception under try and catch block. An arithmetic exception occurs most of the time because of the division of a number by integer 0. In this article, I have used a single catch for a single try, but we can also use multiple catch for a single try.
Atas ialah kandungan terperinci Java ArithmeticException. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!