JAVA处理未捕获异常-阿里云开发者社区

开发者社区> 蒋固金> 正文

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默认的异常处理行为做了变更,如果是安卓的开发者也可以使用该种方式捕获异常,来更改程序默认的崩溃显示样子,更加友好的提示用户。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
出错保障局-异常处理机制 | 带你学《Java面向对象编程》之七十六
没有一个开发者的代码是绝对不会出错的,Java为了尽量提前发现错误,推出了异常处理机制。
330 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4479 0
强悍的异常处理-处理多个异常 | 带你学《Java面向对象编程》之七十七
当try块中出现多个异常,而catch块中捕获的只有有限个时,有时会出现无法捕获导致程序异常终止的情况,此时我们可以用多个catch块来解决。
478 0
Java 编程中关于异常处理的 10 个最佳实践
异常处理是Java 开发中的一个重要部分。它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。
741 0
Java入门 - 语言基础 - 22.异常处理
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error; 如果你用 System.out.println(11/0),那么你是因为你用 0 做了除数,会抛出 java.lang.ArithmeticException 的异常。 异常发生的原因有很多,通常包含以下几大类: - 用户输入了非法数据 - 要打开的文件不存在 - 网络通信时连接中断,或者JVM内存溢出 这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。
132 0
+关注
115
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载