学习笔记:

  1. 一.程序的异常:Throwable
    严重问题:Error ,我们不处理。这种问题一般很严重,不如内存溢出
    问题:Exception
    编译问题:不是RuntimeException异常。必须进行处理,如果不处理编译不能通过
    运行问题:RuntimeException,这种问题也不处理。是因为代码不够严谨。需要修改代码
  2.  
  3. 二.如果程序出现了问题,我们没有处理,最终Jvm会做默认处理。把异常信息打印到控制台。同时会结束程序。这对程序非常不友好,
    我们希望一块代码出现问题时,不会影响另一块代码执行。这是需要我们自己处理异常
    1.我们自己如何处理?
    方式一:
    try{
    可能出现问题的代码。 //try里面的代码越少越好
    }catch(异常名 变量){
    处理问题 //catch里必须有处理操作,否则就会把问题隐藏掉(还不如不处理呢)
    }finally{
    释放资源
    }
    当有多个异常:
    try{
    可能出现问题的代码。
    }catch(异常名1 变量){
    处理问题
    }catch(异常名2 变量){
    处理问题
    }
    JDK1.7针对多个异常处理方案:
    try{
    可能出现问题的代码。
    ...
    }catch(异常名1 | 异常名2 |... 变量){ //这几个异常必须是同一级的,都是RuntimeException的子类
    处理问题
    ...
    }
  4.  
  5. 2.try里面发现问题后,jvm会帮我们 生成一个异常对象,然后把这个异常对象抛出,和catch里面的类进行匹配,
    如果该对象是某个类型的,就会执行该catch里面的处理信息
    例如:
    String time = "2018-01-01";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    try {
    Date date = sdf.parse(time);
    } catch (ParseException e) {
    e.printStackTrace();//我们并没有手动创建ParseException对象,说明这个e对象是jvm帮我们创建的
    }
    3.异常中的方法
    getMessage():异常的消息字符串
    例如:Unparseable date: "2018-01-01"
    toString(): 返回异常的简单信息描述
    例如:java.text.ParseException: Unparseable date: "2018-01-01"
    printStackTrace():打印异常详细信息
    例如:java.text.ParseException: Unparseable date: "2018-01-01"
    at java.text.DateFormat.parse(DateFormat.java:366)
    at com.myexception.Test.main(Test.java:15)
  6.  
  7. 4.如果我们处理不了(比如没有权限) ,就抛出去。
    代码:
    public void method() throws ParseException{
    Date date = sdf.parse(time);//对于这种编译期异常的抛出,谁调用谁去处理
    }
    //调用时必须处理
    public void methodService() throws ParseException{
    method();
    };
  8.  
  9. public void method() throws ArithmeticException{
    ......//对于运行期异常抛出,调用时可以不用处理
    }
    //调用时可以不处理
    public void methodService(){
    method();
    };
  10.  
  11. 5.throw throws区别:
    throws用在方法声明后面,跟的是异常类名。 表示可能有异常 throws Exception
    throw 用在方法体内,跟的是异常对象。表示一定抛出了某个异常 throw new Exception();
  12.  
  13. 6.finally特点:
    finally里语句一定会执行
    如果在执行finally之前jvm就退出了,那就不会执行了
    7.final, finally,
    final,关键字 : 修饰类:不可以被继承。修饰变量:变量不可被修改。修饰方法:方法不能被重写
    finally,异常处理的一部分。用于释放资源。
    finalize,是object的方法,用于垃圾回收
    8.自定义异常
    继承Exception
    继承RuntimeException

java异常Exception的更多相关文章

  1. 浅谈java异常[Exception]

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

  2. Java异常(Exception)

    Java异常:运行期出现的错误 1. Java异常是Java提供的用于处理程序中错误的一种机制: 2. 错误指的是程序运行期间发生的异常事件,如除零溢出.数组下标越界.读取的文件不存在.... 3. ...

  3. Java 异常Exception e中e的getMessage()和toString()以及 e.printStackTrace();方法的区别

    Exception e中e的getMessage()和toString()方法的区别: 示例代码1: public class TestInfo {     private static String ...

  4. Java 异常Exception e中e的getMessage()和toString()方法的区别

    示例代码1: public class TestInfo { private static String str =null; public static void main(String[] arg ...

  5. Java异常 - Exception总结

    这篇blog总结的比较详细了. 如下图所示,在Java中所有异常的基类均为Throwable类.有两个子类,分别为Exception和Error.其中Error主要由JVM处理,比如OutOfMemo ...

  6. Java异常 Exception类及其子类

    C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象. Java异常处理通过5个关键字try.ca ...

  7. java异常——Exception、RuntimException

    一.Exception和RuntimeException的区别 Exception是RuntimeException的父类,使用了 Exception 的类都必须对异常进行处理(try / throw ...

  8. Atitit java的异常exception 结构Throwable类

    Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...

  9. 2015年11月26日 Java基础系列(五)异常Exception

    序,异常都是标准类Throwable的一些子类的对象. Throwable类的几个方法 1 getMessage() 返回描述该异常的信息 2 printStackTrace() 把消息和栈的跟踪记录 ...

随机推荐

  1. PE 添加系统管理员账号(域控可加)转

    使用U盘制作一个PE系统,这里推荐老毛桃或者大白菜:开机进入Bios,选择U盘启动:进入U盘启动画面后,选择一个PE系统:进入PE系统后,我们去本机系统盘,将 C:/Windows/System32/ ...

  2. SQL Server 创建用户报错:消息 15023,级别 16,状态 1,第 1 行 用户、组或角色 'XXX' 在当前数据库中已存在。

    问题描述: 原因: 当数据库恢复到其他服务器时,原数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户. 这种情况可能会出现上面的问题.该问题是无法通过新建登录或者是 ...

  3. mysql 中的内置函数

    一.字符串函数 select concat(name,"age is",age) from users;  insert(str,x,y,insert)//将字符串x位置开始y个位 ...

  4. node.js cluster模式启用方式

    众所周知,Node.js运行在Chrome的JavaScript运行时平台上,我们把该平台优雅地称之为V8引擎.不论是V8引擎,还是之后的Node.js,都是以单线程的方式运行的,因此,在多核心处理器 ...

  5. javascript:针对yyyy-MM-dd hh:mm:ss格式的毫秒转换.

    javascript:针对yyyy-MM-dd hh:mm:ss格式的毫秒转换. 时间 2015-11-07 22:18:39  HideHai's blog 原文  http://www.hideh ...

  6. C#事件の事件解析

    事件(event)是基于windows消息处理机制的类,封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来.委托(delegate)委托可以理解成为函数指针,不同的 ...

  7. Hive窗口函数

    参考地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics 环境准备: CRE ...

  8. 【转】C盘不能扩展卷怎么回事 C盘扩展卷灰色的解决办法

    今天有百事网网友“丅亿页”遇到了这样一个问题:电脑C盘剩余容量太小,在看到百事网的一篇“如何合并磁盘分区 windows7调整分区大小方法”文章后,也想将自己C盘系统盘空间扩大.按照上面文章中介绍的步 ...

  9. docker-1-环境安装及例子实践

    1.安装go 先新建一个Go的工作空间文件夹,文件夹路径建议放在$HOME下: userdeMacBook-Pro:~ user$ cd $HOME userdeMacBook-Pro:~ user$ ...

  10. Sphinx 生成 Windows 帮助文件 (.chm文件)

    本文不介绍 Sphinx 的用法,只简要罗列 Windows 下生成 .chm 文件的步骤. 0. 首先检查机器是否安装了 HTML Help Workshop 软件,一般安装路径应该是 C:\Pro ...