`
isiqi
  • 浏览: 16496104 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Java经验点滴:处理没有被捕获的异常

阅读更多

文章来源:csdn 作者:enoeht

  在我们的程序中并不是所有的异常都被捕获,有些是因为我们不想捕获,因为我们认为那些异常没必要捕获

而有些是我们无法捕获的,因为我们不能确定它们会在什么地方出现,例如像NullPointerException,ClassCastException,IndexOutOfBoundsException这些RuntimeException。我们也许可以在所有它们有可能发生的地方去捕获它们,但这确实是很坏的解决方案。但在有些情况下,我们又必须在一些未捕获的异常发生时做一些事情,像释放资源、让程序离开错误状态等等。

这里通过ThreadGroup提供的一个方法,解决了这个问题,让我们的程序可以变得更健壮。ThreadGroup提供一个uncaughtException回调方法,当线程组中的线程有未被捕获的异常发生时,JVM就会去调用这个方法。


public class ApplicationLoader extends ThreadGroup {

private ApplicationLoader() {

super("ApplicationLoader");

}

public static void main(String args[]) {

Runnable addStarter = new Runnable() {

public void run() {

//在这里调用我们自己的程序的入口函数

//MyApplication.main(args);

}

};

//把我们自己的程序当作这个线程组的一个线程来运行

new Thread(new ApplicationLoader(), addStarter).start();

}

/*当有未被捕获的异常发生导致线程停止时,这个方法就会被虚拟机调用,我们只要在自己的ThreadGroup子类中override这个方法,在其中对异常进行相应的处理*/


public void uncaughtException(Thread threadf, Throwable e) {

//Handle the Exception

}

}

分享到:
评论

相关推荐

    Java经验点滴处理没有被捕获的异常.rar

    Java经验点滴处理没有被捕获的异常.rar

    java编写的记事本

    通过使用`try-catch`语句,开发者可以捕获并处理这些异常,保证程序的稳定性。 8. **资源管理**:为了提高性能和避免内存泄漏,开发者需要正确地关闭打开的文件流和释放音频资源。Java的`finally`块常用于确保资源...

    Java-learning-experience.zip_experience

    学习如何使用try-catch-finally语句块捕获和处理异常,以及如何自定义异常,能够提高代码的健壮性。文档可能提到了在实际编程中如何有效运用异常处理机制的实例。 容器和集合框架是Java中强大的工具,包括数组、...

    爪哇夜未眠(蔡學鏞java)

    Java使用try-catch-finally语句块来捕获和处理运行时错误,确保程序的健壮性。此外,finally块可以确保无论是否发生异常,某些代码都能被执行,如资源的关闭。 多线程是Java的一个强大特性,允许程序同时执行多个...

    简易记事本

    良好的编程实践要求我们对这些可能的异常进行捕获和处理,确保程序的稳定性和用户体验。 7. **多线程**:虽然简单的记事本程序可能并不复杂到需要多线程,但如果考虑到性能优化,比如在执行大文件读写时,可以使用...

    NotebookSys.rar

    最后,考虑到软件的稳定性和异常处理,Java的异常处理机制被充分利用。try-catch-finally结构用于捕获和处理可能出现的错误,确保程序在遇到问题时能够优雅地终止,而不是突然崩溃。 总的来说,“NotebookSys.rar”...

    日记本程序(GUI界面)

    6. **错误处理**:考虑到可能出现的异常情况,如文件不存在、读写权限问题等,程序需要有适当的错误处理机制,如try-catch语句块,来捕获并提示用户错误信息。 7. **数据结构与文件组织**:日记可能以单独的文件...

    SmartUpload上传小实例

    3. 错误处理:捕获并处理可能出现的异常,如文件过大、网络中断等,提供友好的错误提示。 4. 用户体验:提供进度条显示、取消上传等功能,提升用户体验。 5. 文件命名:为了避免文件名冲突,通常需要对上传的文件...

    JsonUtil工具类

    5. 错误处理:在转换过程中,JsonUtil通常会捕获并处理可能出现的异常,如`JsonParseException`、`JsonMappingException`等,以确保程序的健壮性。 总结来说,JsonUtil工具类是Java开发中的利器,它简化了JSON与...

    模拟微信朋友圈消息内容菜单.zip

    代码中可能会包含异常捕获和处理机制,以确保程序的稳定运行。 通过学习这段代码,你可以掌握如何构建一个类似微信朋友圈的消息系统,了解如何处理数据、创建用户界面、实现交互功能,并且了解良好的编程习惯。这...

    note

    3. **异常处理**:如何使用try-catch-finally结构来捕获和处理程序运行时可能出现的错误。 4. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等常用集合类的使用,以及它们之间的区别和应用场景。 5. **...

    手机QQ空间说说.zip

    7. **错误处理与日志记录**:为了调试和优化,开发者需要对可能出现的异常情况进行捕获,并记录日志,以便追踪和解决问题。 8. **版本控制**:为了团队协作和代码管理,开发者通常使用Git进行版本控制,确保代码的...

    Android aidl的使用

    6. **异常处理**:如果在服务端抛出异常,客户端会收到一个`RemoteException`。因此,服务端应该在方法中捕获可能的异常,并返回一个适当的错误码。 ### 实战演练 在`aidldemo`项目中,你可以看到一个简单的AIDL...

Global site tag (gtag.js) - Google Analytics