Heim > Java > javaLernprogramm > Hauptteil

Java ArithmeticException

WBOY
Freigeben: 2024-08-30 16:13:38
Original
758 Leute haben es durchsucht

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 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Struktur von ArithmeticException in Java

Struktur der Basisklasse ArithmeticException:

Java ArithmeticException

Konstruktor von 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 

Wie funktioniert ArithmeticException in Java?

Im Folgenden sind die beiden Situationen aufgeführt, die zu einer Java ArithmeticException führen können:

  • Division einer Zahl durch eine nicht definierte Null und eine ganze Zahl.
  • Nicht terminierende lange Dezimalzahlen von Big Decimal.

1. Division einer Zahl durch eine ganzzahlige Null

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:

Beispiel #1

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);
}
}
Nach dem Login kopieren

Ausgabe:

Java ArithmeticException

  • lang.ArithmeticException: Von der Java-Sprache während der Division ausgelöste Ausnahme
  • / durch Null: Dies ist die detaillierte Nachricht, die der Klasse ArithmeticException beim Generieren der ArithmeticException-Instanz übergeben wird.

Da wir 10 durch 0 dividiert haben, wobei 0 eine Ganzzahl und undefiniert ist, wird die obige arithmetische Ausnahme ausgelöst.

Beispiel #2

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);
}
}
Nach dem Login kopieren

Ausgabe:

Java ArithmeticException

2. Nicht terminierende lange Dezimalzahlen durch große Dezimalzahl

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:

Beispiel #1

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());
}
}
Nach dem Login kopieren

Ausgabe:

Java ArithmeticException

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.

Beispiel #2

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());
}
}
Nach dem Login kopieren

Ausgabe:

Java ArithmeticException

Die Ausgabekonsole zeigt das Ergebnis als Zahl mit einem 7tel Dezimalpunkt an, was bedeutet, dass das Runden einwandfrei funktioniert.

Wie vermeidet oder behandelt man Java ArithmeticException?

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.
}
Nach dem Login kopieren

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");
}
}
Nach dem Login kopieren

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.

Das obige ist der detaillierte Inhalt vonJava ArithmeticException. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!