1.什么是异常
运行时出现的错误就是异常
2.异常的分类
Error: 运行时出现的错误并且不可处理.
Exception: 运行时出现可处理的错误.
3.常用的异常有那些(当前学到的)
java.io.IOException IO流异常
java.io.FileNotFoundException 指定文件不存在或试图打开因为某些原因不可访问的文件时出现此异常.
java.lang.RuntimeException 系统自动处理的异常
java.lang.NullPointerException 空指针异常.
java.lang.IndexOutOfBoundsException 数组越界异常
java.lang.ArithmeticException 除零异常
目前就想起这么多来
4.异常处理有几种方式
运行时出现的错误就是异常
2.异常的分类
Error: 运行时出现的错误并且不可处理.
Exception: 运行时出现可处理的错误.
3.常用的异常有那些(当前学到的)
java.io.IOException IO流异常
java.io.FileNotFoundException 指定文件不存在或试图打开因为某些原因不可访问的文件时出现此异常.
java.lang.RuntimeException 系统自动处理的异常
java.lang.NullPointerException 空指针异常.
java.lang.IndexOutOfBoundsException 数组越界异常
java.lang.ArithmeticException 除零异常
目前就想起这么多来
4.异常处理有几种方式
thowrs 被动异常处理,会影响程序的执行,会向上抛出异常.
try{}catch(){}finally{} 主动处理异常,不会影响程序执行
5.异常的使用(代码演示)package cn.pcl.exception;
/**
* throws向上抛出异常代码演示,注意会影响程序的执行
*/
public class Test {
public static void main(String[] args) throws Exception{
int i = 1/0; // 这句将会引起除零异常
System.out.println("我被执行了");
}
}
package cn.pcl.exception;
/**
* 主动处理异常演示,注意finally代码块中的代码不论发不发生错误都会出现执行
*/
public class Test {
public static void main(String[] args){
try {
int i = 1/0; // 这句将会引起除零异常
} catch (Exception e) {
System.out.println("出现异常,异常信息为:" + e.getMessage());
} finally {
System.out.println("不论对错我将始终执行");
}
System.out.println("我被执行了");
}
}
6.自定义异常应该如何实现(代码演示)
package cn.pcl.exception;
/**
* FileName: ZeroException
*/
public class ZeroException extends Exception {
// 第一种方法来实现异常类自定义
/**
* 通过调用父类的构造函数,来初始化错误信息
* @param msg 错误信息
*/
public ZeroException(String msg) {
super(msg);
}
// 第二种方法来实现异常类的自定义.
public ZeroException(){}
/**
* 通过重写父类的toString方法来实现
*/
public String toString() {
return this.getClass().getName() + ": 除零异常";
}
}
package cn.pcl.exception;
/**
* FileName: ZeroException
*/
public class Test {
public static void main(String[] args){
try {
int i = Test.zeroInt(1, 0);
} catch (ZeroException e) {
e.printStackTrace();
}
System.out.println("我被执行了");
}
public static int zeroInt(int a, int b) throws ZeroException {
// 判断条件然后抛出异常,注意throws 和 throw 的区别
if(b == 0) { throw new ZeroException(); }
return a/b;
}
}