gpt4 book ai didi

java - 如何捕获算术异常

转载 作者:行者123 更新时间:2023-11-29 09:52:51 26 4
gpt4 key购买 nike

我试图通过使用 try catch block 或抛出异常方法来捕获以下代码中的异常。我已经尝试使用 try catch block 并在代码的不同位置抛出异常方法,但我仍然无法捕获异常

package thowsexception;

import java.io.IOException;
import java.rmi.AccessException;

public class IOexception {
public int example1(int i, int j) throws ArithmeticException {
int k ;

if (i == 0){
throw new ArithmeticException("cannot Divide By 0");
}
return i /j ;

// try {
//
// k = i/j ;
// }
//
// catch (ArithmeticException e){
//
// System.out.println("Error: Don't divide a number by zero");
// }



}
}

主类

package thowsexception;

import java.io.IOException;

public class IOexception {

public static void main(String[] args) throws ArithmeticException {
example e = new example();
e.example1(5,0);
}
}

最佳答案

你可以用两种不同的方式解决这个问题

public int example1(int i, int j) throws ArithmeticException {


if (j == 0) {// you should check j instead of i
throw new ArithmeticException("cannot Divide By 0");
}

return i / j;
}

public int example1(int i, int j) throws ArithmeticException {

try {
return i / j;
}
catch (ArithmeticException e) {
throw new ArithmeticException("Error: Don't divide a number by zero");
}
}

但第一个比第二个正确,因为未经检查的异常代表编程错误,应该修复编程错误并且大多数时候这些异常是由于用户在用户程序交互期间提供的错误数据而发生的, 所以我们应该防止这些类型的错误而不是捕获它。

阅读更多关于 better-understanding-on-checked-vs-unchecked-exceptions-how-to-handle-exception-better-way-in-java 的信息

关于java - 如何捕获算术异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31974189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com