class FuShuException extends Exception
{
FuShuException(String msg)
{
super(msg);
}
}
class Demo
{
int div(int a,int b) throws FuShuException
{
if(b<0)
throw new FuShuException("除数为负数");
if(b==0)
throw new ArithmeticException("零被除了");
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[] args)
{
Demo d = new Demo();
try
{
int x = d.div(4,-1);
System.out.println(x);
}
catch(FuShuException e)
{
System.out.println(e.toString());
}
finally
{
System.out.println("finally");//存放一定会被执行的代码
}
System.out.println("over");
}
}
数据库Exception
public void method() throws NoException
{
try
{
连接数据库;
数据库操作;
}
catch(SQLException e)
{
对数据库进行异常处理;
throw new NoException();
}
fianlly
{
关闭数据库;
}
}
try
{
throw new Exception();
}
fianlly
{
关闭资源;
}
1.子类在覆盖父类时,如果父类方法跑出异常,子类方法覆盖,只能抛出父类异常或该异常的子类
异常总结
Throwable
|-->Error
|-->Eeception
|-->RuntimeEeception
当函数内容有throw抛出异常,并未进行try处理,必须要在函数上声明,都在编译失败。
注意:runtimeException除外,
如果函数声明异常,调用者需要进行处理,处理方法可throw可try
异常有两种
编译时被检测的异常
该异常在编译时,如果没有处理,编译失败
该异常被标示,代表可以被处理。
运行时异常(编译时不检测)
在编译时,不需要处理,编译器不检查。
该异常的发生,建议不处理,让程序停止,需要对代码进行修正。
fianlly只有System.exit(0);时不会执行
自定义异常
定义类继承Eeception或者RuntimeEeception
1,为了让该自定义类具备可抛性,
2,让该类具备异常方法处理的,
自定义异常,按照java的面向对象思想,将程序中出现的特有问题进行封装
throw 单独存在,下面不要定义语句
|