java学习笔记day07
1.throwable下面的子类分为两大类:Error 和 Exception
2.如果方法上有throws Exception,则必须对异常进行处理:
try{
需要检测异常代码
}catch(Exception e){
处理异常代码
}finally{
一定会执行的代码
}
这里,如果没有进行try{}catch(){}进行处理,而在调用它的方法上继续throwsException
抛出,到最后没有方法进行处理,一直抛给JVM虚拟机,JVM虚拟机有个默认的处理机制,
这里,程序可以编译通过,但是在运行时还是会报错,终止程序。
3.当方法上标明有多个异常类需要抛出处理时,需要有与之对应的catch进行捕捉
这时需要把父子的catch放在多个catch的最后面。
4.自定义异常:
1)定义一个Exception的子类(即该类需要继承Exception)
2)创建该子类对象,并将该对象进行抛出,引起程序的跳转。
自定义异常类,如果某个方法调用该类的方法可能出现异常,该方法中需要有throw new 异常类()
并在该方法上进行标明,如果throw new 是Exception异常类的子类时,方法上可以不标明
5.RuntimeException异常 和 普通Exception异常的区别
普通Exception异常在编译时期是需要检测的
而RuntimeException在编译时期是可以不被检测的
即:
方法内有throw new Exception("");时,那在该方法上必须标识该异常
而如果方法内有throw new RuntimeException("");时,可以不在方法上标识该异常
6.throw 和 throws的区别
1)throw是语句抛出一个异常;throws是方法抛出一个异常
2)throws可以单独使用,但throw不能
3)throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws
可以单独使用,然后再由处理异常的方法捕获。
throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。
throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。
throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。
throw是具体向外抛异常的动作,所以它是抛出一个异常实例。
7.异常处理细节:
1)如果父类中的方法没有throws 抛出异常,那么子类覆盖该方法时不能throws抛出异常,只能try,不能抛。(即父类没做的事情,子类不能做)
2)子类覆盖父类时,只能抛出父类异常或者异常的子类
3)如果父类抛出多个异常,那么子类只能抛出这些异常子集
java学习笔记day07的更多相关文章
- JAVA学习笔记—review基本知识[反射与异常]
JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
随机推荐
- Unity之Bmob云存储一
无论我们做软件还是做游戏,少不了的就是和数据打交道,对于要保存到本地的数据,我们可以采用的载体太多了.例如:txt,Xml,Sqlite,SqlServer,Mysql等等,具体使用什么那就视情况而定 ...
- 解决使用Touch ID API在回调时界面“长时间卡住”的问题
Touch ID是iOS8上新公开的API,关于详细介绍和用法可以看CocoaChina的这两篇文章:上 和 下,在此篇文章中不再赘述. 我在app中需要的效果是如果touch id验证通过,则页面p ...
- [core Java学习笔记][第一二三章基本语法]
基本语法 1 Java 简单的类型 1.1 一些常量 正无穷大 Double.POSITVE_INFINITY 负无穷大 Double.NEGATIVE_INFINITY 不存在 Double.NaN ...
- 虚拟化之docker安装篇
1,docker pull centos 下载centos镜像 docker search centos 搜索镜像 2,docker images 查看本地镜像 3,do ...
- NuGet学习笔记(2)——使用图形化界面打包自己的类库(转)
上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...
- eclipse安装Flash Builder 4后变成中文,怎么解决
修改eclipse.ini启动参数: -startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.libr ...
- Android--------解决ScrollView中嵌套ExpandableListView显示不全的问题
##***Scrollview和ExpandableListView嵌套显示不全*** - 当我们将ExpandableListView嵌套在Scrollview之中时,我们必须要确保我们的不居中Ex ...
- PHP学习笔记三十三【自定义错误处理器】
<?php //自定义错误处理器 //$errorno 错误号 //$errmes错误信息 //这两个参数是必须的 function my_error($errorno,$errmes) { e ...
- SSH连接LINUX乱码解决方法
1.vi /etc/sysconfig/i18n 将内容改为 LANG="zh_CN.GB18030" LANGUAGE="zh_CN.GB18030:zh_CN.GB2 ...
- VLD 1.0 ReadMe翻译尝试
近期想学习下VLD的实现,打算从最简单的V1.0版本看起.以下是V1.0版本自己尝试翻译下,最新的2.x版本似乎强大了很多. 简介 Visual C++提供了内置的内存检测机制,但其充其量只满足了最小 ...