Java核心类库5——异常
程序员文章站
2022-06-03 23:52:35
...
Java核心类库5——异常
- java.lang.Throwable类是Java语言中错误(Error)和异常(Exception)的超类
- 其中Error类主要用于描述Java虚拟机无法解决的严重错误,通常无法编码解决,如:JVM挂掉了 等
- 其中Exception类主要用于描述因编程错误或偶然外在因素导致的轻微错误,通常可以编码解决, 如:0作为除数等
1、Error
2、Exception
2.1、异常分类
2.1.1、Checked Exception
可检查的异常,这是编码时非常常用的,所有checked exception都是需要在代码中处理的。它们的发生是可以预测的,正常的一种情况,可以合理的处理。比如IOException,或者一些自定义的异常。除了RuntimeException及其子类以外,都是checked exception。
2.1.2、Unchecked Exception
RuntimeException及其子类都是unchecked exception。比如NPE空指针异常,除数为0的算数异常ArithmeticException等等,这种异常是运行时发生,无法预先捕捉处理的。Error也是unchecked exception,也是无法预先处理的。
2.2、异常的处理
2.2.1、try…catch
try
{
// 程序代码
}catch(ExceptionName e1)
{
//Catch 块
}finally
{
//最后一定执行的代码
}
当需要编写多个catch分支时,切记小类型应该放在大类型的前面
2.2.2、抛出
在某些特殊情况下有些异常不能处理或者不便于处理时,就可以将该异常转移给该方法的调用者, 这种方法就叫异常的抛出
public void show() throws IOException{}
- 子类重写的方法不能抛出更大的异常、不能抛出平级不一样的异常,但可以抛出一样的异常、更小 的异常以及不抛出异常
- 若父类中被重写的方法没有抛出异常时,则子类中重写的方法只能进行异常的捕获处理
- 若一个方法内部又以递进方式分别调用了好几个其它方法,则建议这些方法内可以使用抛出 的方法处理到最后一层进行捕获方式处理
3、自定义异常
public class NameException extends Exception {
public NameException() {
super();
}
public NameException(String message) {
super(message);
}
}
public class Person {
private String name;
public Person() {
}
public Person(String name) throws NameException {
setName(name);
}
public String getName() {
return name;
}
public void setName(String name) throws NameException {
if (name.length()<0||name.length()>10){
throw new NameException("姓名长度过长");
}
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
public class Test {
public static void main(String[] args) throws NameException {
Person person = new Person("zhangsanlisiwangwu");
System.out.println(person);
}
}
上一篇: 面经 - Java 基础篇
下一篇: Java基础1——变量与数据类型
推荐阅读
-
5个最*jQuery图表类库插件【jquery插件库】
-
Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门
-
Java 复习笔记5 - 异常处理
-
java常用工具类 Random随机数、MD5加密工具类
-
Java日期时间API系列5-----Jdk7及以前的日期时间类TimeUnit在并发编程中的应用
-
荐 Java——数据库编程JDBC之数据库连接池技术(C3P0与Druid,提供了Druid的工具类)
-
mybatis oracle proc 数据库测试没问题,java调用就异常 ORA-00900: 无效 SQL 语句
-
支持php4、php5的mysql数据库操作类
-
Java自定义异常类
-
python学习笔记:第19天 类的约束、异常、MD5和logging