在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的。下面的小程序包括一个故意导致被零除错误的表达式。

当Java运行时系统检查到被零除的情况,它构造一个新的异常对象然后抛出该异常。这导致Exc0的执行停止,因为一旦一个异常被抛出,它必须被一个异常处理程序捕获并且被立即处理。该例中,我们没有提供任何我们自己的异常处理程序,所以异常被Java运行时系统的默认处理程序捕获。任何不是被你程序捕获的异常最终都会被该默认处理程序处理。默认处理程序显示一个描述异常的字符串,打印异常发生处的堆栈轨迹并且终止程序。

下面是由标准javaJDK运行时解释器执行该程序所产生的输出:

java.lang.ArithmeticException: / by zero

at Exc0.main(Exc0.java:4)

注意,类名Exc0,方法名main,文件名Exc0.java和行数4是怎样被包括在一个简单的堆栈使用轨迹中的。还有,注意抛出的异常类型是Exception的一个名为ArithmeticException的子类,该子类更明确的描述了何种类型的错误方法。本章后面部分将讨论,Java提供多个内置的与可能产生的不同种类运行时错误相匹配的异常类型。

堆栈轨迹将显示导致错误产生的方法调用序列。例如,下面是前面程序的另一个版本,它介绍了相同的错误,但是错误是在main( )方法之外的另一个方法中产生的:

默认异常处理器的堆栈轨迹结果表明了整个调用栈是怎样显示的:

如你所见,栈底是main的第7行,该行调用了subroutine( )方法。该方法在第4行导致了异常。调用堆栈对于调试来说是很重要的,因为它查明了导致错误的精确的步骤。

java未_Java未被捕获的异常相关推荐

  1. Java多线程:捕获线程异常

    你处理过多线程中的异常吗?如何捕获多线程中发生的异常?捕获子线程的异常与捕获当前线程的异常一样简单吗? 除了try catch.Java中还可以通过异常处理器UncaughtExceptionHand ...

  2. java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用

    Java未被捕获的异常 在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public st ...

  3. UncaughtExceptionHandler:java未捕获的异常/错误默认处理方式

    UncaughtExceptionHandler:java未捕获的异常/错误 @(JAVA)[java] java有一部分异常属于运行时异常,这类异常发生时通过会导致程序发生错误,导致退出.如数据下标 ...

  4. Java未被捕获的异常

    在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public static void ma ...

  5. android捕获线程异常,android - 终结器引发的未捕获的异常:所有WebView方法必须在同一线程上调用。 (预期的Looper) - 堆栈内存溢出...

    我正在使用Admob SDK 18.1.1 并获得错误终结器抛出未捕获的异常 java.lang.RuntimeException: java.lang.Throwable: A WebView me ...

  6. 对线程中未捕获的异常进行处理UncaughtExceptionHandler

    通常程序中我们会对可能出现的异常进行捕获,例如 public static void main(String[] args) {System.out.println("##### begin ...

  7. 加了try的情况下线程中抛出未捕获的异常

    一.问题描述 项目中线程中明明加了try catch 捕获异常,但是一启动就报未捕获的异常导致整个程序崩溃. 下面是windows中的错误日志. Application: 岗亭收费.exe Frame ...

  8. c#处理未捕获的异常(UnhandledException)

    c#处理未捕获的异常(UnhandledException) 参考文章: (1)c#处理未捕获的异常(UnhandledException) (2)https://www.cnblogs.com/ya ...

  9. WinForm捕获全局异常(捕获未处理的异常)

    背景 我们在做WinForm程序的时候,一般都是对异常进行处理,但是,我们要防止不小心出现未知异常,导致软件崩溃.也可采集系统未知的异常信息,防止出现异常,也无法下手.于是就有了如这篇文章标题所述的一 ...

  10. java为啥要捕捉异常_java – 为什么在捕获时使用IOexception而不是Exception?

    我似乎无法正确地说出这一点,搜索引擎可以获得任何有意义的结果. try{ BufferedReader reader = new BufferedReader( new FileReader(&quo ...

最新文章

  1. 前端测试简述及使用Karma/Mocha实现的集成测试栗子(Travis CI/Coverage)
  2. go语言笔记——指针,和C用法以及本质一样,但不支持指针的+-运算!
  3. B-JUI(Best jQuery UI) 前端框架
  4. [INS-32102] 指定的 Oracle 主目录用户已存在
  5. Codeforces Round #639 (Div. 2)(AB)
  6. 【COCI 2018/2019 Round #2】Kocka
  7. python3.6,--登录知乎
  8. OpenShift 4 Hands-on Lab (13) 使用持久化存储
  9. C++新特性探究(十):Lambda
  10. linux内核调试器ftrace使用
  11. 【java学习之路】(数据结构篇)002.栈和队列
  12. android rom打包解包工具,Android ROM定制:boot.img、recovery解包打包
  13. 微信小程序商品跳转到第三方
  14. 安装星际译王与本地词典
  15. vue中使用dragdrop
  16. 气象接口返回图标_天气实况API接口一中央气象台直供
  17. 网易云音乐 最美的评论
  18. Unity插件——VR Panorama 360 PRO Renderer 全景视频录制使用入门
  19. 《好好学习·成甲》教你如何学习学习
  20. 由多个库组成的 Android Jetpack,到底有多厉害?

热门文章

  1. Java中,类的实例化方法
  2. MFC中CString.Format的详细用法
  3. 远程桌面无法连接方案
  4. IE设置自动获得代理(ISA20042006中设置相应项)
  5. Linux如何创建makefile文件,如何在Linux上为gcc创建简单的makefile?
  6. ble连接过程建立_BLE蓝牙协议 — BLE连接建立过程梳理
  7. loadrunner性能测试步骤_性能测试LoadRunner操作流程之一
  8. RecyclerView 内item点击失效
  9. mysql查询一个月未登录_mysql函数实例-统计1周内未登陆的用户
  10. C#中生成随机数的方法和语句