3.JAVA异常进阶

1.Run函数中抛出的异常

  • 1.run函数不会抛出异常
  • 2.run函数的异常会交给UncaughtExceptionhandler处理
  • 3.默认的UncaughtExceptionHandler为空   Thread.setUncaughtExceptionHandler(new UncaughtExceptionHandler(){…...})
  • 4.启动线程 Thread.start()
  • 例子
  •  UncaughtExceptionTask task=new UncaughtExceptionTask();
    Thread thread = new Thread(task);
    thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread t, Throwable e) {
    System.out.println("处理run函数抛出的异常");
    System.out.println(t+":"+e);
    }
    });
    thread.start();
    } class UncaughtExceptionTask implements Runnable{
    public void run(){
    System.out.println(10/0);//throws uncheckerException: ArithmeticException
    }
    }
  • 对异常进行捕获
  • public class ExceptionTest {
    public static void main(String[] args) {
    int c=0;
    try {
    int a = 3;
    int b = 0;
    c=a/b;
    System.out.println(c);
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    System.out.println("处理了异常: ArithmeticException");
    }
    System.out.println(c);
    }
    }
  • 抛出异常,但是程序可以继续向下执行,此时输出的c为没有进入try块的初始化的值---注意c的值是0;
  • 若c=10/2,运行结束不会抛出异常,c为5;
  • 函数声明时候指定抛出的异常名
  • void function() throws MyException{/*code*/}
  • a.函数code抛出的异常类型必须与函数throws的异常类型对应
  • b.函数code可以不抛出异常(如果抛出异常就必须与throws的异常类型相对应)
  • 异常信息显示
  • Exception.printstackTrace();
  • Exception.printstackTrace(System.out);—输出重定向
  • Exception.getMessage();
  • Exception.getstackTrace();—返回值是一个数组
  • 最主要的异常信息提取函数还是e.printStackTrace();
  • printStackTrace();
  • 函数功能:打印出异常抛出的处和函数的调用路径
  • 默认的输出路径 System.err 标准错误流
  • 重定向输出printStackTrace(System.out);

3.Java异常进阶的更多相关文章

  1. Java基础进阶:时间类要点摘要,时间Date类实现格式化与解析源码实现详解,LocalDateTime时间类格式化与解析源码实现详解,Period,Duration获取时间间隔与源码实现,程序异常解析与处理方式

    要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 ...

  2. 总结:Java 集合进阶精讲1

    知识点:Java 集合框架图 总结:Java 集合进阶精讲1 总结:Java 集合进阶精讲2-ArrayList 集合进阶1---为集合指定初始容量 集合在Java编程中使用非常广泛,当容器的量变得非 ...

  3. Java基础系列5:深入理解Java异常体系

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 前言: Java的基 ...

  4. 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!

    本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错 ...

  5. 一张图搞清楚Java异常机制

    下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的. Throwable Throwable是Java异常的顶级类,所有的异常都继承于这个类. Error,Excepti ...

  6. Java——深入理解Java异常体系

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 前言: Java的基 ...

  7. 浅谈java异常[Exception]

    学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...

  8. 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

    本文转载自  java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...

  9. Java异常体系及分类

    上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...

随机推荐

  1. WPF基础到企业应用系列6——布局全接触

    本文转自:http://knightswarrior.blog.51cto.com/1792698/365351 一. 摘要 首先很高兴这个系列能得到大家的关注和支持,这段时间一直在研究Windows ...

  2. gulp watch出现Error: watch null EPERM的问题解释

    出现这样的问题,一般是第一次运行导致的,而且任务上有删除文件的操作. 我观察发现,只要把输出目录的文件删除,然后重新运行watch就一些ok,后者再运行一次gulp watch就一切正常.

  3. 【Beta】Scrum05

    Info 由于12.9~12.11三天,PM和测试到上海参加比赛,期间PM对博客更新暂停,功能测试暂停,Scrum会议暂停,12.12日起补充及恢复之前未能完成的工作. 时间:2016.12.08 2 ...

  4. nginx中的超时设置

    nginx使用proxy模块时,默认的读取超时时间是60s. 1. send_timeout syntax: send_timeout the time default: send_timeout 6 ...

  5. 迅雷9、迅雷极速版之迅雷P2P加速:流量吸血鬼?为什么你装了迅雷之后电脑会感觉很卡很卡?

    原文地址:http://www.whosmall.com/post/90 关闭极速版迅雷ThunderPlatform.exe进程 ThunderPlatform.exe目的:利用P2P技术进行用户间 ...

  6. IBatis 批量插入数据之SqlBulkCopy

    public void AddLetters(IList<int> customerIds, string title, string content, LetterEnum.Letter ...

  7. Dom4j把xml转换成Map(固定格式)

    /** * 可解析list * * @param fileName * @return * @throws Exception */ @SuppressWarnings("unchecked ...

  8. mui jquery 同时使用

    (function ($, doc, $$) { $.init(); $.ready(function () { var cityPicker = new $.PopPicker({ layer: } ...

  9. MySQL随机获取数据的方法,支持大数据量

    最近做项目,需要做一个从mysql数据库中随机取几条数据出来. 总所周知,order by rand 会死人的..因为本人对大数据量方面的只是了解的很少,无解,去找百度老师..搜索结果千篇一律.特发到 ...

  10. Qml 写的弹出层控件

    QML弹出窗口组件,灯箱效果.动画效果,可拖拽 核心思路:一个mask层,一个最顶层,都用rectangle,禁止事件穿透 使用 Popup { id: popup width: 200; heigh ...