线程“主”java.lang.ArithmeticException 中的异常:/ 为零

Posted

技术标签:

【中文标题】线程“主”java.lang.ArithmeticException 中的异常:/ 为零【英文标题】:Exception in thread "main" java.lang.ArithmeticException: / by zero 【发布时间】:2012-06-04 18:31:48 【问题描述】:

我有两个关于Exceptions 的问题。首先,我从我的代码中得到了这条消息......

Exception in thread "main" java.lang.ArithmeticException: / by zero

这个错误信息的意思是除以零,比如做int a = 5 / 0;

一个方法可以抛出一个Exception 类实例,不是吗?但这是一种表达。为什么表达式可以抛出Exception 类实例?

我的第二个问题是关于thread "main"thread "main" 是什么? "main" 是指static main 方法吗?

【问题讨论】:

【参考方案1】:

java.lang.ArithmeticExceptionException 的一种类型,旨在更好地描述问题的实际情况。仅仅创建一个Exception 是没有意义的,因为它真的可能是由任何事情引起的。通过生成ArithmeticException,用户可以立即知道问题与计算有关。任何代码都可以抛出Exception,包括在您的示例等计算中。

Exception in thread "main" 表示异常是由main() 方法引发的,它也恰好是运行您的代码的主线程。

【讨论】:

【参考方案2】:

方法可以抛出异常类实例,不是吗?

是的,他们可以。

但这是声明。为什么语句可以抛出异常类实例?

异常可能发生在任何地方。所以即使是语句也可以抛出异常。如果您的意思是为什么语句不能抛出异常,那么它们可以。这是一个例子:

if ((a/b) == 0) 
        throw new ArithmeticException();
    

第二个问题是关于线程“main”的。什么是线程“主”?

当 Java 程序启动时,一个线程立即开始运行。这通常被称为程序的主线程,因为它是在程序开始时执行的。

【讨论】:

【参考方案3】:

其算术异常情况:表示逻辑中的某事在数学算术中不存在;

检查“for循环”或任何其他逻辑函数的条件。

一个例子是当你在某处写下类似的东西:(n % i == 0) 并初始化i = 0,现在每个人都知道这个数字不能被零除。因此,您可能需要将初始化更改为i = 1

【讨论】:

以上是关于线程“主”java.lang.ArithmeticException 中的异常:/ 为零的主要内容,如果未能解决你的问题,请参考以下文章

Android 异步操作Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )

子线程怎么不阻塞主线程

QT中UI主窗口如何与子线程相互传递参数

java 子线程 回调 主线程

C++怎么在主线程中使用子线程的数据? 比如说主线程中有一个数组,如何在子线程中调用这个数组

EventBus事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )