JAVA处理未捕获异常

简介:

应用程序开发过程中,对于异常的处理很重要,但是有些异常并不是我们可以事先预知的,那么对于我们没有捕获的异常将由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默认的异常处理行为做了变更,如果是安卓的开发者也可以使用该种方式捕获异常,来更改程序默认的崩溃显示样子,更加友好的提示用户。

目录
相关文章
|
1月前
|
Java
Java中的异常链:从根源到解决方案
Java中的异常链:从根源到解决方案
37 0
|
1月前
|
存储 监控 Java
Java认识异常(超级详细)
Java认识异常(超级详细)
|
3月前
|
Java 程序员 数据库连接
JAVA中的异常
Throwable Error Exception 编译时异常 运行时异常 异常的处理 try-catch捕获并处理 finally throw throws 自定义异常类
28 0
|
2天前
|
存储 Java 程序员
JavaSE&Java的异常
JavaSE&Java的异常
18 0
|
18天前
|
Java
Java中的异常类总结
Java中的异常类总结
|
1月前
|
SQL Java
java中的异常
java中的异常
10 1
|
1月前
|
Java 程序员 编译器
Java中异常
Java中异常
12 0
|
1月前
|
Java 程序员 编译器
Java中的异常
Java中的异常
9 0
|
1月前
|
Java
Java异常的抛出
Java异常的抛出
10 0
|
1月前
|
Java 索引
JAVA异常类及其主要方法
JAVA异常类及其主要方法
41 3