Java学习笔记之——异常处理
1.异常:
在程序运行时,发生了一些错误导致程序不能正常结束或者中断
2.异常导致的后果
Java程序的执行过程中如果出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息,并将其被提交给Java运行时系统,这个过程称为抛出异常,不处理的话会直接导致程序中断。
3. 异常的分类
(1)分类根据继承关系:
Throwable(Java语言中所有错误或异常的超类)
Throwable下面有两个直接子类:
a. Error:系统性的相关问题,如jvm
b. Exception:程序相关问题
Exception的子类之一:RuntimeException(运行时异常)
(2)根据是否必须处理分类
a. 受查异常:在编译阶段必须处理掉的错误
Exception本身
Exception除了RuntimeException以外的所有子类
这些异常,跟程序相关,但通常是外界因素造成的,比如你要访问一个文件,第一次访问了,第二次访问的时候被人删除了,你就找不到文件链接
b. 非受查异常:编译时不报错,运行时报错,即不需要通过异常机制处理就可以编译通过
Error:无能为力
RuntimeException及其子类:通常是由于自己代码的问题,应该调整代码,如空指针、数组越界
4. 处理异常的方式
五个关键字:try-catch-final-throws-throw
(1) 捕获:try-catch
try{
放的是一些可能会出现错误的代码
}catch(捕获到的异常){
当你捕获之后执行的代码
}finally{
不管怎么样都会执行的代码
}
(2) 抛出:throws、throw
在当前方法中不处理异常,让调用者处理。
调用者可以继续抛出或者处理掉
5.产生异常的两种方式
(1)程序自行判断
(2)程序员自己抛出的,通过throw 异常对象
6.补充
(1).自定义异常,继承与Eexception
(2)Exception的子类:
IOException
FileNotFindException 文件没有找到异常
RuntimeException(运行时异常)
NullPointerException 空指针异常
ArraysOutOfBoundsException 数组越界
ArithMeticException 数学异常
InrerRuptedException
(3).在抛出多个异常的时候
3.在try-catch 多个异常的时候,代码是不是有一定的要求
a)父类的异常后捕获,子类的异常先捕获
b.处理多个异常
Java学习笔记之——异常处理的更多相关文章
- Java学习笔记之异常处理
一.异常的分类 1.由Java虚拟机抛出的异常(Error):程序无法处理的问题,用户不用去进行处理(虚拟机错误丶内存溢出错误丶线程死锁) 2.Exception异常:程序本身可以进行处理的异常 1. ...
- Java 学习笔记(11)——异常处理
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error:如果你用System.ou ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145330第五周《Java学习笔记》
20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- java学习笔记12--异常处理
java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...
- java学习笔记5--类的方法
接着前面的学习: java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址 ...
- 20145230《java学习笔记》第九周学习总结
20145230 <Java程序设计>第9周学习总结 教材学习内容 JDBC JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作, ...
随机推荐
- git 本地同步分支数,删除远程已经删除掉的多余分支
git remote show orgin (展示当前本地分支和远程上的分支差异,多余分支后会被标注 use 'git remote prune' to remove.) git remote pr ...
- js拼接字符串后swiper不能动的解决方案
swiper的配置一定要放在拼接字符串之后,紧随其后,如果放在其他的位置,swiper是不识别HTML的.
- ucore代码分析
lab2: 总共分为四个包一个文件,分别为: boot: 操作系统加载程序代码 kern: 操作系统内核代码 libs: 相关的库和数据结构 tools: 相关编译链接调试工具 Makefile: 构 ...
- Web发展史
Web 万维网常称为WWW(World Wide Web)发展至今仅30年,英国计算机科学家,蒂姆 伯纳斯 李爵士 提出了 World Wide Web的设计方案,1990年李爵士完成了Web 所有的 ...
- 格式化数据保留两位小数,输入格式为 :xxx,xx,,,,x,,(x为浮点数)
/** * 格式化字符串 */ static String dataFormat(String data){ String formatedData = ""; // 浮点数正则表 ...
- Java精确测量代码运行时间
Java精确测量代码运行时间: --------------- long startTime = System.nanoTime(); //開始時間 for(int i = 0;i<10000; ...
- [Swift]LeetCode72. 编辑距离 | Edit Distance
Given two words word1 and word2, find the minimum number of operations required to convert word1 to ...
- [Swift]LeetCode726. 原子的数量 | Number of Atoms
Given a chemical formula (given as a string), return the count of each atom. An atomic element alway ...
- [Swift]LeetCode906. 超级回文数 | Super Palindromes
Let's say a positive integer is a superpalindrome if it is a palindrome, and it is also the square o ...
- setData方法修改data中对象或数组的属性值(小程序开发)
今日在开发小程序地图的过程中,遇到一个问题,困扰了我一会 业务如下: 困扰点: 我不知道如何修改data中数组包含的对象是如何修改的:期初的想法还是想共享上面的数据,想的太简单了 正确的解决步骤: 直 ...