java中浮点数运算中0作除数并不会出现异常,而是:
正数除以0得正无穷,负数除以0得负无穷,0除以0得NaN
同样情况若是整形数运算则会抛出异常
测试用例:
package mytest;
public class DivideTest {
private void testInt(int dividend, int divisor) {
try {
System.out.println("testInt: " + dividend + "/" + divisor + " = "
+ dividend / divisor);
} catch (RuntimeException e) {
System.out.println("testInt exception:" + e.getMessage());
}
}
private void testLong(long dividend, long divisor) {
try {
System.out.println("testLong: " + dividend + "/" + divisor + " = "
+ dividend / divisor);
} catch (RuntimeException e) {
System.out.println("testLong exception:" + e.getMessage());
}
}
private void testDouble(double dividend, double divisor) {
try {
System.out.println("testDouble: " + dividend + "/" + divisor
+ " = " + dividend / divisor);
} catch (RuntimeException e) {
System.out.println("testDouble exception:" + e.getMessage());
}
}
private void testFloat(float dividend, float divisor) {
try {
System.out.println("testFloat: " + dividend + "/" + divisor + " = "
+ dividend / divisor);
} catch (RuntimeException e) {
System.out.println("testFloat exception:" + e.getMessage());
}
}
public static void main(String[] args) {
DivideTest dt = new DivideTest();
// 整数
dt.testInt(0, 0);
dt.testInt(1, 0);
dt.testInt(-1, 0);
System.out.println();
// 长整形
dt.testLong(0, 0);
dt.testLong(1, 0);
dt.testLong(-1, 0);
System.out.println();
// 浮点
dt.testFloat(0, 0);
dt.testFloat(1, 0);
dt.testFloat(-1, 0);
System.out.println();
// 双精度
dt.testDouble(0, 0);
dt.testDouble(1, 0);
dt.testDouble(-1, 0);
}
}
分享到:
相关推荐
在此例中,由于除数为零,将会抛出`ArithmeticException`异常,因此在方法声明中使用`throws ArithmeticException`来声明该异常类型。 ##### 2. 使用场景 - **声明异常**:当一个方法内部可能发生某些异常,但...
总结,Java 中常见的错误主要包括空指针异常、类型转换异常、数组越界异常、除数为零异常以及未初始化的局部变量异常。这些错误大多可以通过在编程时仔细检查和验证变量状态、类型和边界条件来避免。在遇到这些问题...
这种实践活动有助于加深理论理解,并为将来的工作或研究打下坚实基础。 3. 知识点:计算器程序设计 计算器程序设计涉及到基本的数学运算逻辑实现,包括加、减、乘、除等四则运算。此项目中的计算器允许用户直接...
### Java常见异常总结 在Java开发过程中,异常处理是一项重要的技术。合理的异常处理不仅可以提高程序的健壮性,还能帮助开发者快速定位问题所在。本文将详细介绍一些常见的Java异常及其发生场景,帮助读者更好地...
这两个异常类分别用于表示除数为零和除数为负数的情况。它们都有一个构造函数,接收一个字符串参数`msg`,并将这个消息传递给父类的构造函数,以便在打印堆栈跟踪时提供更具体的错误信息。 在`Numbertest`类中,有...
1. **异常的概念**:异常是在程序运行过程中发生的不正常情况,如除数为零、文件未找到等。Java中的异常处理机制可以有效地捕获和处理这些异常。 2. **异常的分类**:Java中的异常分为两大类:编译时异常(checked ...
在实际开发中,我们还需要考虑错误处理,比如无效的输入格式、除数为零等。这可以通过抛出异常并捕获来处理,同时提供友好的错误信息给用户。 此外,为了提高用户体验,计算器可能还包括一个图形用户界面(GUI)。...
例如,在`AssertTest`类的`div`方法中,如果除数为零,会使用`assert`关键字抛出一个异常,并附带自定义消息。 4. **throws** 关键字:在方法签名中使用,表示该方法可能会抛出一个或多个异常。例如,`TryCatchTest...
- 对于整数除法,应先检查除数是否为零。 - 使用异常处理结构捕获该异常并采取适当的恢复措施。 #### 4. `java.lang.ArrayIndexOutOfBoundsException` `java.lang.ArrayIndexOutOfBoundsException` 表示数组索引...
### Java异常总结 #### 一、Java异常类结构体系 Java异常处理机制是基于类的继承体系构建的,其中所有异常类都直接或间接地继承自`Throwable`类。`Throwable`类作为所有异常和错误的基类,提供了错误堆栈实现等一...
在实际开发中,还需要考虑错误处理,比如除数为零的情况,以及用户输入的合法性验证,以提供稳定且用户体验良好的计算器应用。通过这样的项目实践,开发者可以深入理解Java Swing库的使用和GUI编程的基本原理。
这段代码首先从请求参数中获取两个数字,然后进行除法运算,如果除数为零则抛出错误。注意,为了得到浮点数结果,我们需要将一个整数转换为double类型再进行除法运算。 对于乘法运算,逻辑会相对简单,只需要将两个...
对于计算器的运算逻辑,我们需要确保正确处理除数为零的情况,防止程序异常。同时,为了提高用户体验,可以考虑添加括号支持,实现更复杂的计算表达式。这将涉及到栈数据结构的运用,用于存储运算符和临时结果,以便...
- 对于可能的除数为零的情况,提前做出判断并采取措施。 5. **`java.lang.NumberFormatException`**【数字转换格式错误】 - **解释**:当程序尝试将一个不能转换为数字的字符串转换为数字时,会出现此类异常。 ...
- **异常处理**:对于可能发生的运行时错误(如除数为零),通过try-catch语句捕获异常并给出友好的错误提示。 #### 五、课程设计总结 - **学习成果**:通过本次课程设计,不仅加深了对Java基础知识的理解,还掌握...
在实际开发中,你可能会扩展这个功能,例如添加减法、乘法和除法等操作,并使用条件语句和异常处理来处理可能出现的问题,如除数为零的情况。 总结一下,实现Java中的加法计算器主要涉及以下步骤: 1. 定义并初始化...
4. 处理各种可能的错误情况,如除数为零、输入非法字符等。 5. 考虑用户体验,比如提供清零、撤销操作等功能。 在编写代码时,遵循良好的编程规范,注释清晰,以便于理解和维护。同时,进行充分的测试,确保程序的...
注意,除法方法中添加了对除数为零的异常处理,因为数学上除以零是未定义的。 至于用户交互部分,计算器程序会使用`JButton`对象来表示数字和运算符按钮,`JTextField`用于显示输入和计算结果。当用户点击按钮时,...
本代码示例通过定义一个`Number`类实现了基本的数学运算,并且合理地处理了除数为零的异常情况。这种设计方式不仅简单明了,而且易于理解和维护。在实际开发中,可以进一步扩展此类的功能,例如增加更多的数学运算...
4. **错误处理**:为了确保程序的健壮性,计算器需要处理可能的错误情况,如除数为零、非法字符输入等。 5. **设计模式**:在构建一个多功能计算器时,可能会使用到设计模式,比如策略模式用于实现不同类型的运算,...