异常处理
Exception 必须try catch RuntimeException 不会强制你
异常不是错误,是用户的不合理操作
@Test
public void testTry(){
try {//try不能单独用,可以和一个或多个catch一起使用
Scanner input =new Scanner(System.in);
System.out.println("请输入被除数:");
int num1=input.nextInt();
System.out.println("请输入除数:");
int num2=input.nextInt();
int result=num1/num2;
System.out.println("结果"+result);
//发生异常后只会往下走,并不会从头再来
} catch (ArithmeticException ex) {//ArithmeticException 针对于数学问题的异常
//ex.printStackTrace();//封装了异常,调用它会将异常显示
System.out.println("除数不能是0");
}catch(InputMismatchException ex){
System.out.println("除数和被除数必须是整数");
}catch (Exception ex) {//是所有异常的父类型,必须写在最后
System.out.println("未知错误,请联系管理员");
}
finally{
System.out.println("程序结束");//不管怎么样都要执行
}
}
用户也可以自己抛出异常 throw Exception();
public void setAge(int age) throws Exception(){//声明异常
int num;
if(){
}else{
throw new Exception("age is between 18 to 60");
}
}
最好自己去写一个异常去继承exception,然后自己声明问题,这样会比较容易找到问题