JAVA处理未捕获异常
2016-01-24 16:43
423 查看
应用程序开发过程中,对于异常的处理很重要,但是有些异常并不是我们可以事先预知的,那么对于我们没有捕获的异常将由JAVA的默认行为去处理,今天为大家介绍一种用于全局的捕获异常的方式,替代JAVA默认的处理行为。
首先,我们简单的制造一个异常:
运行后会提示如下异常信息:
Exception in thread “main” java.lang.ArithmeticException: / by zero
at ExceptionCatch.main(ExceptionCatch.java:5)
这是我们没有处理异常的时候默认的显示方式,现在我们来变更默认的行为。
运行后我们会看到:
2016-01-24 16:40:52:main has exception:java.lang.ArithmeticException: / by zero
这样我们就对JAVA默认的异常处理行为做了变更,如果是安卓的开发者也可以使用该种方式捕获异常,来更改程序默认的崩溃显示样子,更加友好的提示用户。
首先,我们简单的制造一个异常:
public class ExceptionCatch { public static void main(String[] args) { int i = 10 / 0; System.out.println(i); } }
运行后会提示如下异常信息:
Exception in thread “main” java.lang.ArithmeticException: / by zero
at ExceptionCatch.main(ExceptionCatch.java:5)
这是我们没有处理异常的时候默认的显示方式,现在我们来变更默认的行为。
import java.lang.Thread.UncaughtExceptionHandler; import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.Date; public class ExceptionCatch { public static void main(String[] args) { Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { System.out.println(MessageFormat.format("{0}:{1} has exception:{2}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), t.getName(), e.toString())); } }); int i = 10 / 0; System.out.println(i); } }
运行后我们会看到:
2016-01-24 16:40:52:main has exception:java.lang.ArithmeticException: / by zero
这样我们就对JAVA默认的异常处理行为做了变更,如果是安卓的开发者也可以使用该种方式捕获异常,来更改程序默认的崩溃显示样子,更加友好的提示用户。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树