当前位置:嗨网首页>书籍在线阅读

34-处理线程中的不可控异常

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

1.8 处理线程中的不可控异常

在任何编程语言中,提供对应用中错误情景的管理机制都是非常重要的。和其他现代编程语言一样,Java编程语言提供了基于异常的错误管理机制。当发生错误情况时,Java将抛出异常类。除了已有的异常类,还可以自定义异常类,以便管理类中产生的错误。

Java也提供了捕获和处理异常的机制。有一些异常必须被捕获或者通过方法上的 throws 声明再次抛出,这类异常被称为检查异常。而有一些异常不需要方法上的声明或捕获,这类异常被称为非检查异常。

  • 检查异常: 该异常必须在方法的 throws 语句中声明,或者在方法内部捕获,例如 IOExceptionClassNotFoundException
  • 非检查异常: 该异常不需要声明或者捕获,例如 NumberFormatException

如果在一个线程对象的 run() 方法内抛出检查异常,则必须对其进行捕获处理,因为 run() 方法不接受 throws 语句。如果一个非检查异常在一个线程对象的 run() 方法内被抛出,则会默认将异常栈信息打印到控制台,并退出程序。

幸运的是,Java提供了用于捕获和处理线程对象中抛出的非检查异常机制,以避免程序的结束。

本节将在案例中使用这种机制。