您的位置:首页 > 编程语言 > Java开发

JAVA处理未捕获异常

2016-01-24 16:43 423 查看
应用程序开发过程中,对于异常的处理很重要,但是有些异常并不是我们可以事先预知的,那么对于我们没有捕获的异常将由JAVA的默认行为去处理,今天为大家介绍一种用于全局的捕获异常的方式,替代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 异常