栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java如何处理零除?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java如何处理零除?

在一个Unix环境,在这种划分被零是

signal
通过主导
SIGFPE
,JVM将已安装的陷阱的信号处理程序
SIGFPE
,进而
throw
S上的
ArithmeticException
。如果您对内部结构感兴趣,请参见例如
mansignal

我认为OP提出的要求是基于这样一个事实,即直到/除非有

SIGFPE
处理程序到位,大多数进程都会在接收到此信号时采取默认操作,即终止操作。因此,例如一个C程序

 int main (int argc, char** argv) { int n = 5 / 0; }

…即使编译,也会被默认的

SIGFPE

SIG_DFL
操作杀死。JVM的处理程序改为发出(
catch
能力),
RuntimeException
以便可以以本机似的方式处理这些异常。

正如其他一些人指出的那样,并且仅仅是为了完整性,事实上

SIGFPE
,内核生成的代码通常是根据处理器本身的特殊中断来映射的。因此,“管道”就像

  • CPU错误陷阱中断→内核中断处理程序
    SIGFPE
    SIG_DFL
    →→进程死亡

要么

  • CPU错误陷阱中断→内核中断处理程序→
    SIGFPE
    JVM中的处理程序→
    RuntimeException
    ArithmeticException
    用户代码中

在非Unix平台上,处理类似。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431041.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号