版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013514722/article/details/49756315
异常体系:
throwable :(所有错误和异常的超类)
(
Error: 一般由jvm和硬件发生的问题,不能通过代码去解决
Exception : 需要代码处理。
)
两种异常:
1.编译时异常:除了运行时异常都是。
2.运行时异常:runtimeException 和 runtimeException的子类。
throwable 常用方法:
toString() 返回当前异常对象的完整类名+病态信息。
getMessage() 返回创建throwable传入的字符信息,从而对异常进行说明。
printStackTrace() 打印异常的栈信息。
Jvm一旦发生不正常的情况时候,会马上创意一个对应的异常对象,并且会调用这个异常对象的 printStackTrace 的方法来处理。
异常的处理:
1. 捕获处理:
格式:
try{
可能发生异常的代码
}catch(捕获的异常类型 变量名){
处理异常的代码
}
注意事项:
1.try块代码出现了异常经过处理之后,try-catch之后的代码可以正常执行。
2.try块代码出现了异常之后,try块中出现异常的代码后的代码不会执行。
3.一个try块后可以跟多个catch块,可以捕获多个异常类型,但捕获的类型必须由小到大。
2. 抛出处理:
使用注意:
1.如果一个方法抛出了一个编译时异常对象,那么该方法必须声明抛出。
2.如果调用了一个声明编译时异常抛出的方法,那么调用者必须要处理。
3.如果一个方法抛出了一个异常对象,那么该方法也会马上停止。
4.在一种情况下只能抛出一种异常对象。
自定义异常类:
步骤:
自定义一个类继承Exception 。
样例代码:
class NomoneyException extends Exception
{
public NomoneyException(String message)
{
super(message);
}
}
class Demo4
{
public static void main(String[] args) throws NomoneyException
{
int Money = 100;
Money = 9;
try
{
test(Money);
System.out.println("yunc=xingl。。。。");
}
catch (NomoneyException e)
{
e.printStackTrace();
System.out.println("回去拿钱。。。。");
}
System.out.println("44444。。。。");
}
public static void test(int MM) throws NomoneyException
{
if(MM < 10)
{
throw new NomoneyException("亲,你的钱不够。。");
//System.out.println("555555。。。。");
}
else
System.out.println("吃饭了啦啦啦。。。。");
}
}