1、异常分为两类:

--1)Error:Java虚拟机无法解决的严重问题(例如资源耗尽等);

--2)Exception:其他编程错误或偶然的外在因素导致的一般性问题(例如空指针异常、读取的文件不存在、网络中断等)。

2、捕获错误最理想的是在编译期间,然后有些错误只有在运行时才会发生(编译时异常(checked)、运行时异常(unchecked))。

3、常见的运行时异常:

--1)数组下标越界:ArrayIndexOutOfBoundsException;
--2)算术异常:ArithmeticException;
--3)类型转换异常:ClassCastException;

--4)空指针异常:NullPointerException;

4、Java提供的是异常处理的抓抛模型。

--程序执行过程中如出现异常,会生成一个异常类对象,该异常对象将被提交给Java运行系统,这个过程称为抛出异常;

--异常对象可由JVM自动生成,也可由开发人员手动创建。

5、try{}

  catch(Exception1 e1){}//catch可以多写,try中抛出的异常类对象从上往下匹配catch中的异常类类型,

  catch(Exception2 e2){}//一旦满足就执行catch中的代码,该catch以后的其他catch不在匹配。

  finally{//一定会被执行的代码}//finally为可选

6、对于运行时异常,可不进行显示的异常处理,但是对于编译时异常,则必须进行异常处理。

7、若有多个catch语句,且异常类对象存在继承关系,则子类必须写在父类前面,否则无法通过编译。

8、若存在finally语句,则在处理异常结束之前(如return)将执行finally里面的语句。

9、若不知道如何对异常进行处理,则可在方法声明处,显示的抛出该异常对象的类型,由该方法的调用者负责处理(throws),若调用者也不知道如何处理异常,则继续向上一调用者抛出该类异常,最高可抛给虚拟机进行处理。

10、手动抛出的异常类对象可以是已提供的异常类,也可以是自定义的异常类。

--例:

public class MyException extends Exception{
static final long serialVersionUID = -123435;//提供一个唯一的序列号
//提供几个构造器
public MyException(){
super();
}
public MyException(String str){
super(str);
}
}

11、子类重写父类的方法,其抛出的异常类型只能是被重写的方法的异常类的子类或异常类型一样。

12、异常总结(抓抛模型):

--try:执行可能产生的异常的代码

--catch:捕获异常

--finally:无论是否发生异常,代码总被执行

--throw:异常发生阶段(手动抛出异常对象)

--throws:异常处理方式(声明方法可能要抛出的各种异常类)

Java笔记--异常的更多相关文章

  1. java笔记--异常详解与处理

    一.异常概念 Throwable类是Java中所有错误或异常的超类. 1.只有当对象是此类(或其子类)的实例时,才能通过Java虚拟机或着Java throw语句抛出.     2.只有此类或其子类才 ...

  2. Java笔记 - 异常机制

    JAVA异常机制是Java提供的用于处理程序在运行期可能出现的异常事件(如数组下标越界.文件不存在等)的一种机制,使程序不会因为 异常的发生 而 阻断或产生不可预见的结果 .而且还可以将逻辑代码与错误 ...

  3. Effective Java笔记一 创建和销毁对象

    Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...

  4. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  5. 转 Java笔记:Java内存模型

    Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...

  6. Java笔记---枚举类和注解

    Java笔记---枚举类和注解 一.枚举类 自定义枚举类 方式一:JDK5.0之前自定义枚举类 class Seasons { //1. 声明Seasons对象的属性 private final St ...

  7. java的异常

    下面是我对Java异常知识的几个小总结,也算是资源回收一下 一.Java异常的知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的.比如说,你的代码少了一个分号,那么运 ...

  8. 《java中异常和错误》

    异常和错误的区别. 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发 ...

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

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

随机推荐

  1. Linux中常用命令的使用(一)

    这次只讲常用命令 先说命令的组成:命令一般由 (选项.命令.参数) 组成 下面就从开启一个Ubuntu开始说起 1.用户登录:在putty环境下,输完用户名在输入密码 别人想知道你用的linux系统 ...

  2. HA: Infinity Stones-Write-up

    下载地址:点我 哔哩哔哩:点我 主题还是关于复仇者联盟的,这次是无限宝石的. 信息收集 虚拟机的IP为:192.168.116.137 ➜ ~ nmap -sn 192.168.116.1/24 St ...

  3. 陶陶摘苹果(0)<P2005_1>

    陶陶摘苹果 (apple.pas/c/cpp) [问题描述]  陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用 ...

  4. 【转】CentOS6开启BBR加速

    1.查看机器内核 BBR 算法需要 Linux 4.9 及以上的内核支持,所以想要使用该方式的需要先升级内核版本. 在 Cent OS 7 上的 Linux 内核是 3.10, 使用 uname -r ...

  5. LeetCode中等题(二)

    题目一: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复 ...

  6. Android学习笔记17:单项选择RadioButton和多项选择CheckBox的使用

    请参见 http://www.android100.org/html/201406/05/19495.html

  7. JS简单回弹原理

    /* *JS简单回弹原理 */ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...

  8. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:显示下拉式功能

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 二、点击导出按钮创建excle写入内容后下载功能实现

    /*涉及的jar包1)biframework.jar用于实现分页功能2)poi-3.7-20101029.jar:读取.创建.修改excle.word.ppt的Java APIApache POI是创 ...

  10. webpack配置自动打包重新运行npm run dev出现报错

    webpack配置自动打包重新运行npm run dev出现报错 运行npm run dev出现如下报错 Listening at http://localhost:8080(node:2328) U ...