try catch捕获异常
/**
代码块一旦发现异常,就会停止执行代码跳出try,直接赋给变量e,
*/
//括号内为出现异常的代码块
try {
}
//将捕获的异常赋给变量e(声明一个异常变量)
catch(Exception e ) {
// 打印异常信息
System.out.println(e.getMessage() );
// 打印栈的追踪
e.prinStackTrace();
}
当程序不出现异常的时候,try catch不会对不出现异常的代码产生影响
出现异常时:
声明的异常和出现的异常不一致的时候就当没有try_catch;
声明的异常和出现的异常一致(声明的是父,产生的是子);
多重catch存在时不能将父放在子之间;
try{}
catch(){}
finally{
// 不论什么情况都去执行的代码块,除非退出虚拟机
}
异常的分类
runTime异常,在运行时才产生的
Checked异常,编译阶段必须处理的,不处理无法正常编译。该异常可以痛try_catch进行处理,也可以
自定义异常
public class test {
public static void main(String[] args) {
try {
showAge(-10);
}
catch (MyException e) {
e.printStackTrace();
}
}
public static void showAge(int age) throws MyException {
if(age<0) {
throw new MyException("输入年龄错误");
}
System.out.println("");
}
/**
具体的异常都是继承自Exception类,所以我们要自定义的异常也需要继承这个基类。
我们自定义异常命名MyException,需要继承基类Exception,然后我们调用基类的构造方法,带一个参数
*/
public class MyException extends Exception {
public MyException() {
}
public MyException(String message) {
super(message);
}
}