黑马程序员--老毕视频之浅谈异常抛出

---------------------- <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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值