Java Arithmetic Exception ist eine Art ungeprüfter Fehler oder ein ungewöhnliches Codeergebnis, das ausgelöst wird, wenn zur Laufzeit eine falsche arithmetische oder mathematische Operation im Code auftritt. Ein Laufzeitproblem, auch Ausnahme genannt, tritt auf, wenn der Nenner eine Ganzzahl 0 ist, die JVM das Ergebnis nicht auswerten kann und daher die Ausführung des Programms abgebrochen wird und eine Ausnahme ausgelöst wird. An dem Punkt, an dem die Ausnahme ausgelöst wurde, wird das Programm beendet, der frühere Code wird jedoch ausgeführt und das Ergebnis wird angezeigt.
Die Basisklasse der Java-Arithmetik-Ausnahme ist lang.ArithmeticException, die unter java.lang.RuntimeException fällt.
WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Struktur der Basisklasse ArithmeticException:
1. ArithmeticException(): Definieren Sie eine arithmetische Ausnahme ohne übergebenen Parameter oder ohne detaillierte Meldung.
2. ArithmeticException(String s): Definieren Sie eine ArithmeticException mit einem übergebenen Parameter.
s:s ist die detaillierte Nachricht
Im Folgenden sind die beiden Situationen aufgeführt, die zu einer Java ArithmeticException führen können:
Eine arithmetische Ausnahme in Java wird ausgelöst, wenn wir versuchen, eine Zahl durch Null zu dividieren. Unten finden Sie den Java-Code zur Veranschaulichung des Vorgangs:
Code:
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); } }
Ausgabe:
Da wir 10 durch 0 dividiert haben, wobei 0 eine Ganzzahl und undefiniert ist, wird die obige arithmetische Ausnahme ausgelöst.
Code:
//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); } }
Ausgabe:
Java verfügt über eine BigDecimal-Klasse, die Dezimalzahlen mit einer großen Anzahl von Ziffern darstellt. Diese Java-Klasse verfügt auch über einige Funktionalitäten, die in den primitiven Datentypen nicht verfügbar sind, beispielsweise Integer, Doubles und Floats. Diese Funktionen ermöglichen das Runden der Dezimalzahlen
Unten finden Sie den Code zur Veranschaulichung:
Code:
//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()); } }
Ausgabe:
Da die große Dezimalklasse im oben geschriebenen Java-Code nicht weiß, was mit der Divisionsausgabe geschehen soll, löst sie eine arithmetische Ausnahme aus oder zeigt sie in der Ausgabekonsole an.
Es wird eine Ausnahme mit der detaillierten Meldung „Nicht terminierende Dezimalerweiterung, keine exakte Darstellung“ ausgelöst.
Ein möglicher Ausweg für die obige große Dezimalklasse besteht darin, die Anzahl der Dezimalstellen anzugeben, die wir von einer großen Dezimalzahl benötigen, und den Wert dann auf eine bestimmte Anzahl von Dezimalstellen zu beschränken. Beispielsweise sollte c auf 7 Dezimalstellen begrenzt werden, indem die Zahl auf den 7-ten Dezimalgenauigkeitswert gerundet wird.
Code:
//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()); } }
Ausgabe:
Die Ausgabekonsole zeigt das Ergebnis als Zahl mit einem 7tel Dezimalpunkt an, was bedeutet, dass das Runden einwandfrei funktioniert.
Die Behandlung der von der Java Virtual Machine ausgelösten Ausnahme wird als Ausnahmebehandlung bezeichnet. Der Vorteil der Ausnahmebehandlung besteht darin, dass die Ausführung des Codes nicht gestoppt wird.
Eine Ausnahme wird durch eine Kombination aus Try und Catch behandelt. Im Code wird ein Try/Catch-Block platziert, der möglicherweise eine Ausnahme generiert. Code, der in einen Try/Catch-Block geschrieben wird, wird als geschützter Code bezeichnet.
Syntax:
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.
Das obige ist der detaillierte Inhalt vonJava ArithmeticException. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!