乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
JAVA 5.00 异常
2018-08-12 12:22:26
55
0
0
admin
> 异常的概念和使用 #异常的分类(含继承关系) ``` Throwable: 所有异常的父类 |--------Error: 用于JAVA 自己的错误,如JVM虚拟机出了什么问题 |--------Exception:通常是我们关注的异常类的父类 |-------IOException: 运行环境导致的错误,通常是硬件错误 |-------RuntimeException: 软件逻辑错误,一般就是代码写的不好 ``` Error和RuntimeException被称为非受查异常,其它称为受查异常 一个方法如果要抛出受查异常的话,必须事先声明 子类不能抛出父类没有声明过的受查异常(因为子类必须可以向上转型成父类) *** #使用方式 * 如果一个方法要抛出受查异常,需要用throws声明 ``` public myfunction() throws myException { ... } ``` * JAVA 强制处理异常,如果你不想处理异常,可以在所有抛异常的方法后面加上 throws Exception,main方法也加上,这样异常就会抛给控制台 > 这时效果就是停止进程,报告错误,一般也正是我们想要的。 * 如果要抛出一个异常,声明一个异常对象并用throw抛出它 ``` throw new myException(); ``` * 用try-catch-finally语句 ``` try { 代码块 } catch(myException e) { //抓取指定异常 处理异常 } catch(Exception e){ //这里会抓获剩下所有抛出的异常(因为Exception是异常的父类,只要能向上转型成Exception的异常都能在这里抓获) 处理异常 } finally { 无论如何都会运行的代码 } ``` 有时候需要多层嵌套,尤其是在构造函数中的时候 ``` try { openDir(); try { openfile(); ... } catch (CannotopenfileException e){ ... } finally { closeDir(); //文件没打开但是目录已经打开了 } } catch (Exception e){ ... } finally { ... //closeDir()不能写在这,因为如果目录打开失败的话,这句话反而会触发新的异常 } ```
上一篇:
JAVA 4.01 接口: Iterable接口和Iterator接口
下一篇:
JAVA 5.10 异常的操作
文档导航