程序正常的情况下可以有顺利运行,遇到用户非法输入,文件找不到磁盘空间已满、数据库连接错误等问题,如果程序不处理,就会崩溃。
异常的类型
1,异常的根类型:java.lang.Thtowable
只有它或它的子类类型,才能用于catch(异常类型e)语句中的异常类型,用于“捕获异常”
换句话说,如果要自定义异常,必须继承Throwable或他的子类
2、Throwable的两大子类:Error和Exception
Error:合理的应用程序不应该通过捕获来解决的严重错误。例如:VirtualMachineError虚拟机错误(StackOverflowError栈溢出,OutOfMemoryError堆内存溢出)
Exception:合理的应用程序应该通过代码避免或捕获来解决的异常。
3、Exception的两大类:编译时异常和运行时异常
- 运行时异常:RuntimeException或它的子类
- 例如:ArrayIndexOutOfBoundsException数组下标越界异常
- 例如:NullPointerException空指针异常
- 例如:ClassCastException:类型转换异常
- 例如:ArithmeticException:算术异常
- 例如:InputMismatchException:输入不匹配异常
- 例如:NumberFormatException:数字格式化异常
- 编译时异常:除了运行时异常都是编译时异常
- 例如:IOException:输入输出异常
- 例如:FileNotFoundException:文件找不异常
- 例如:SQLException:sql执行错误
和异常相关的几个关键字
1,try:尝试执行可能会发生异常的代码
2,catch:尝试捕获try中发生的异常,
3,finilly:无论try中是否发生异常,也无论catch是否可以捕获异常,也不管try和catch中是否有return语句,都要执行,除非在try或catch中执行了System.exit(0)语句
4,throw:用于手动抛出异常
5,throws:表示某个方法内部都没有处理xx异常,抛给调用者处理,在方法的签名中,显示声明抛出哪些异常
自定义异常
1、必须继承Throwable或它的子类,一般继承Exception或RuntimeException
2、尽量保留两个构造器:无参和有参(message)
3、加序列化版本ID
4、自定义异常类型的对象只能使用throw语句抛出
原文地址:https://www.cnblogs.com/Objecting/p/12229739.html
时间: 2024-08-30 06:59:10