异常:
程序中出现非致命性的错误为异常
如果一个程序在运行过程中出现异常,会干扰程序正常运行
java 中 父类 :java.lang.Throwable
异常:用Excption 类表示 程序员 需要处理
分为:
检查式异常 : 语法 IOException SQLException
运行时异常:RuntimeException
错误 : Error 类 程序员解决不了 网络中断
异常处理 try……catch……final
throw 抛出: 跟的是异常对象 new 异常类( 实参 );
通常写在方法定义阶段的方法体中,用来表名,什么情况下会有异常发生
throws 异常类型1,异常类型2……
例:
public 方法返回值 方法名称 ( 参数列表)throws 异常类1 ,异常类n {
方法体 ;
if(条件){
throw new 异常类( "" );
}
}
public int devide(int x,int y)throws DevideByMinusException{
if (y<0) {
throw new DevideByMinusException("除数为负数",y);
}
int result&#61;x/y;
return result;
try{
调用方法 &#xff08;该方法有可能发生异常&#xff09; 一旦发生异常之后 &#xff0c;会进入到catch中 3,1
输出运算结果
} catch ( 异常类型 变量名称 ){
捕获异常
} finally{
有无异常发生都会执行
关闭数据库连接
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
A s&#61;new A();
try {
int result&#61;s.devide(9, -1);
System.out.println(result);
}catch (ArithmeticException e) {
System.out.println("ArithmeticException异常信息&#xff1a;"&#43;e.getMessage());
}
catch (DevideByMinusException e) {
System.out.println("异常信息"&#43;e.getMessage());
System.out.println("分母为"&#43;e.getDevisor());
}
finally {
System.out.println("有无异常都显示");
}
}
什么时候自定义异常&#xff1f;
当java中已有的异常类型无法满足需求时&#xff0c;需要我们来自定义异常。