Java笔记--异常
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笔记--异常的更多相关文章
- java笔记--异常详解与处理
一.异常概念 Throwable类是Java中所有错误或异常的超类. 1.只有当对象是此类(或其子类)的实例时,才能通过Java虚拟机或着Java throw语句抛出. 2.只有此类或其子类才 ...
- Java笔记 - 异常机制
JAVA异常机制是Java提供的用于处理程序在运行期可能出现的异常事件(如数组下标越界.文件不存在等)的一种机制,使程序不会因为 异常的发生 而 阻断或产生不可预见的结果 .而且还可以将逻辑代码与错误 ...
- Effective Java笔记一 创建和销毁对象
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
- 转 Java笔记:Java内存模型
Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...
- Java笔记---枚举类和注解
Java笔记---枚举类和注解 一.枚举类 自定义枚举类 方式一:JDK5.0之前自定义枚举类 class Seasons { //1. 声明Seasons对象的属性 private final St ...
- java的异常
下面是我对Java异常知识的几个小总结,也算是资源回收一下 一.Java异常的知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的.比如说,你的代码少了一个分号,那么运 ...
- 《java中异常和错误》
异常和错误的区别. 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发 ...
- Atitit java的异常exception 结构Throwable类
Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...
随机推荐
- python 基础之集合
集合 s=set('chen xi') s1=['cx','ee','cx'] s2=set(s1)#set为集合 print(s2,type(s2)) s=list(s2) print(s,type ...
- MySQL之关键字
关键字: select * from 表名 where group by having distinct order by limit a,b between * and * 测试数据 # 测试数据 ...
- python3报:ImportError: No module named 'MySQLdb'
问题描述: 项目在转到python3.6时,原先的导入MySQLdb模块都提示无法导入,pip install mysqldb也安装失败. 问题原因: python2和python3在数据库模块支持这 ...
- uniGUI之换肤(17)
在MainModule里 Design 模式 1]RecallLastTheme 设为True 2]Theme选一个皮肤 总共有 classicgraycrispneptunetritontrito ...
- CSS - 布局流程
一.为了提高网页制作的效率,布局时通常需要遵守一定的布局流程,具体如下: "版心"(可视区) 是指网页中主体内容所在的区域.一般在浏览器窗口中水平居中显示,常见的宽度值为960px ...
- mysql 优化策略(如何利用好索引)
博客园 首页 联系 管理 随笔- 3282 文章- 0 评论- 157 mysql联合索引 命名规则:表名_字段名1.需要加索引的字段,要在where条件中2.数据量少的字段不需要加索引3.如果 ...
- 搭建 nginx + rtmp 媒体服务器笔记
工作需要搭建一个流媒体服务器,用来接收前端推过来的视频流,达到实时保存的目的. 具体步骤网上已经比较详细了 可以参考下面这个文档参考文档 https://www.cnblogs.com/monjeo/ ...
- Batch批量替换hosts
hosts文件替换 工作需要,要修改很多计算机的hosts文件,采用bat批量完成 解决的问题: 1.pc工作在非管理员权限,右键管理员权限太麻烦,因此采用执行中申请管理员权限的方式 2.hosts和 ...
- 用于云计算的自我更新、自我修补的Linux版本已发布!
自动化是 IT 行业的增长趋势,其目的是消除重复任务中的手动干扰.Oracle 通过推出 Oracle Autonomous Linux 向自动化世界迈出了又一步,这无疑将使 IoT 和云计算行业受益 ...
- [经验] 使用 jQuery+JSON 实现国际化
技术选型关键词: [spring boot] [jQuery] [JSON] [JSP] 前言: 关于国际化, 我在一开始的时候就有一个误解, 我认为所谓国际化就是编写一段高技术含量的代码, 然后这 ...