线程“主”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.ArithmeticException
是Exception
的一种类型,旨在更好地描述问题的实际情况。仅仅创建一个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 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
C++怎么在主线程中使用子线程的数据? 比如说主线程中有一个数组,如何在子线程中调用这个数组
EventBus事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )