---------------------- <a href="http://www.itheima.com"target="blank">Jsp.java+Android开发</a>、<a href="http://www.itheima.com"target="blank">Jsp.java+Android开发 </a>、期待与您交流! ----------------------
(1)异常的概述:
异常就是所谓的程序运行不正常情况。异常出现的原因有很多,例如说程序中出现了零做除数的情况,线程出现死锁等。异常的问题出现,可以通过java的类的形式进行描述,并封装成对象。其实就是JAVA对不正常情况描述后的对象体现。对于异常可以分为两种,一种是不严重的问题,Java通过Exception类进行描述,这种问题往往可以通过具体问题具体分析解决的办法进行处理。 另一种是严重的问题,Java通过Error类进行描述,这种问题一般不做针对性的处理。
(2)异常的处理:
Java提供了特有的语句进行处理
try
{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码(即处理方法)
}
finally
{
一定会执行的语句
}
(3)对于获得的异常对象进行常见的方法操作
一般是通过string getMassage()的方法来获取异常信息。
(4)对于多异常的处理
首先声明异常时应该声明具体的异常,出现几个声明异常就对应几个catch块,不要定义多余的catch块。如果多个catch块中异常出现继承关系,父类异常的catch放在最下面。
(5)异常的小练习
class LanPingException extends Exception
{
LanPingException(String message)
{
super(message);
}
}
class MaoYanException extends Exception
{
MaoYanException(String message)
{
super(message);
}
}
class NoPlanException extends Exception
{
NoPlanException(String message)
{
super(message);
}
}
class Computer
{
private int state=1;
public void run()throws LanPingException,MaoYanException
{
if(state==2)//电脑第二种状态时抛出异常
throw new LanPingException("蓝屏了");
if(state==3)//电脑第三种状态时抛出的异常
throw new MaoYanException("冒烟了");
System.out.println("电脑运行");
}
public void reset()
{
state=1;//电脑处于第一种状态时需要做的是重启
System.out.println("电脑重启");
}
}
class Teacher
{
private String name;
private Computer cmpt;
Teacher(String name)//对教师对象付参数
{
this.name=name;
cmpt=new Computer();
}
public void prelect()throws NoPlanException//教师上课讲课时可能出现问题,抛出异常
{
try
{
cmpt.run();//需要检测的代码功能
}
catch (LanPingException e)
{
cmpt.reset();//对于电脑第一种异常的处理办法
}
catch(MaoYanException e)
{
test();
throw new NoPlanException("暂时不上课"+e.getMessage());
//对于电脑第二种异常的处理办法
}
System.out.println("讲课");
}
public void test()
{
System.out.println("练习");
}
}
class ExceptionTestA
{
public static void main(String[] args)
{
Teacher t=new Teacher("张老师");//建立教师对象,并赋值
try
{
t.prelect();//调用教师的功能
}
catch (NoPlanException e)
{
System.out.println(e.toString());
System.out.println("换老师");
}
//System.out.println("Hello World!");
}
}
---------------------- <a href="http://www.itheima.com"target="blank">Jsp.java+Android开发</a>、<a href="http://www.itheima.com"target="blank">Jsp.java+Android开发培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://www.itheima.com" target="blank">www.itheima.com</a>