- 异常——程序出现一个非法运行的情况时,都会抛出一个异常
- 异常处理——根据不定的异常提供不同的应对策略和手段
try{
//可能发生的错误代码
}
catch(异常对象 异常对象引用){
//处理异常的代码
}finally{
//善后代码
}
例如
package Exception;
import java.util.Scanner;
public class ExceptionDemo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入i,j的值");
int i=input.nextInt();
int j=input.nextInt();
int k;
try {
k=i/j;
System.out.println("k="+k);
} catch (Exception e) {
// TODO: handle exception
System.out.println("被零整除"+e.getMessage());
}
finally {
System.out.println("程序结束");
}
}
}
测试样例
3. 5 2
4. 5 0
5. Throwable的直接子类
- Error 类
jvm处理,系统本身不能处理 - Exception类
运行时异常
受控异常
- 与return语句的关系
- try里面无论有没有return语句,finally都会被执行
- 如果finally中没有return语句,try中有return语句那么先执行finally语句,在返回数值
- 诺finally中有return语句,程序直接停止,不会执行try中的return
- try-catch嵌套
可以嵌套但不能交叉 - throw异常,可以声明多个异常,打比赛股只能为受控异常
访问权限 返回类型 方法名(形参列表) throws 异常类1,异常类2,异常类N{
throw 异常对象
} - 自定义异常
一般来说继承列Exception
package Exception;
class MyException extends Exception{
public MyException() {
}
public MyException(String massage) {
super(massage);
}
}
public class Myclass{
public static void throwException() throws MyException{
System.out.println("异常方法");
throw new MyException("方法执行时调用");
}
}