Rumah > Java > javaTutorial > teks badan

Java ArithmeticException

WBOY
Lepaskan: 2024-08-30 16:13:38
asal
759 orang telah melayarinya

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-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

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

Struktur ArithmeticException dalam Java

Struktur Kelas Asas ArithmeticException:

Java ArithmeticException

Pembina 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 

Bagaimana ArithmeticException Berfungsi dalam Java?

Di bawah ialah dua situasi yang boleh membawa kepada Java ArithmeticException:

  • Pembahagian nombor dengan Sifar yang tidak ditakrifkan dan integer.
  • Nombor perpuluhan panjang yang tidak ditamatkan oleh Perpuluhan Besar.

1. Pembahagian Nombor dengan Sifar Integer

Pengecualian aritmetik dalam java dilemparkan apabila kita cuba membahagi nombor dengan sifar. Di bawah ialah kod java untuk menggambarkan operasi:

Contoh #1

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);
}
}
Salin selepas log masuk

Output:

Java ArithmeticException

  • lang.ArithmeticException: Pengecualian yang dilemparkan oleh bahasa java semasa pembahagian
  • / dengan sifar: Ia ialah mesej terperinci yang diberikan kepada kelas ArithmeticException semasa menjana contoh ArithmeticException.

Memandangkan kita telah membahagikan 10 dengan 0, dengan 0 ialah integer dan tidak ditentukan, ia melontar di atas pengecualian aritmetik.

Contoh #2

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);
}
}
Salin selepas log masuk

Output:

Java ArithmeticException

2. Nombor Perpuluhan Panjang Tidak Menamatkan dengan Perpuluhan Besar

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:

Contoh #1

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());
}
}
Salin selepas log masuk

Output:

Java ArithmeticException

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.

Contoh #2

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());
}
}
Salin selepas log masuk

Output:

Java ArithmeticException

Konsol output menunjukkan hasil sebagai nombor dengan nilai titik perpuluhanke 7, yang bermaksud pembundaran berfungsi dengan baik.

Bagaimana untuk Mengelak atau Mengendalikan Java ArithmeticException?

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.
}
Salin selepas log masuk

ArithmeticException Handling using try & Catch Blocks

  • Write the statements that can throw ArithmeticException with try and catch blocks.
  • When an exception occurs, the execution falls to the catch block from an exception’s point of occurrence. It executes the catch block statement and continues with the statement present after the try and catch blocks. Below is the example:

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");
}
}
Salin selepas log masuk

Output:

Java ArithmeticException

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:

  1. Try, and catchblocks are exception handling keywords in Java used completely used to handle the exception or unchecked error raised in the code without halting the execution of the code.
  2. Detect the trouble creating statements and place them in the try block. When the try block throws the exception, the catch block handles that exception, and the execution of the program goes further to the last statement.
  3. If the try block does not throw the exception, the catch block is simply overlooked.
  4. Run a suitable exception handler or statements in the catch block to handle or detect the exception thrown by the try block successfully.

Conclusion

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!

Label berkaitan:
sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!