java学习笔记(七)----异常

原创 2006年05月31日 12:53:00

异常
class Test
{ public int devide(int x,int y) throws Exception //throws EXception 抛出异常,如果感觉到这个程序可能出现异常,就加上这条语句,在后面的调用中,如果不加try,catch编译就会出错。
   {  int result=x/y;
      return result;
   }
}
class TestException
{ public static void main(String[] args)
  { try
    { new Test().devide(3,0);}
    catch(Exception ex)
    { System.out.println(ex.getMessage()); } //getMessage 返回异常的信息,是一个字符串,须要我们自己将这个字符串打印在屏幕上
    System.out.println("program is running here!");
  }
}

***创建自己的异常***
class Test
{ public int devide(int x,int y) throws Exception 
   {  if (y<0)
          throw new DevideByMinusException("devisor is"+y); //创建一个异常对象,并且抛出这个异常(注意这个用的是throw而不是throws.)
      int result=x/y;
      return result;
   }
}
class DevideByMinusException extends Exception //创建自己的异常(除数为0时产生的异常)
{ public DevideByMinusException (String msg)
  { super(msg); }
}
class TestException
{ public static void main(String[] args)
  { try
    { new Test().devide(3,-1);}
    catch(Exception ex)    //把上面生成的异常对象传给ex
    { System.out.println(ex.getMessage()); }     //输出结果为devisor is -1
    System.out.println("program is running here!"); //这个语句,运行时一直都输出
  }
}

***抛出多个异常***

class Test
{ public int devide(int x,int y) throws ArithmeticException,DevideByMinusException 
   {  if (y<0)
          throw new DevideByMinusException("devisor is"+y); //创建一个异常对象,并且抛出这个异常(注意这个用的是throw而不是throws.)
      int result=x/y;
      return result;
   }
}
class DevideByMinusException extends Exception //创建自己的异常(除数为0时产生的异常)
{ public DevideByMinusException (String msg)
  { super(msg); }
class TestException
{ public static void main(String[] args)
  { try
    { new Test().devide(3,-1);}
    catch(ArithmeticException ex)  //算术异常
    { System.out.println("program is running into ArithMetic");
      ex.printStackTrace()    //printStackTrace将异常情况直接打在我们的屏幕上
    }
    catch (DevideByMinusException ex) //自定义的除数为负数的异常
   {  System.out.println("program is running into ArithMetic");
      ex.printStackTrace()    //printStackTrace将异常情况直接打在我们的屏幕上
   }
    catch(Exception ex)    //这个异常必须放在所有的,catch的后面
    { System.out.println(ex.getMessage());
      System.exit(0);  //只有使用了这条语句,才不执行finally语句,这条语句表示程序彻底结束。
    }
   
    finally  //不管有没有异常发生finally语句都要执行,即使是在程序前面用了return提前返回了,finally也要被执行,不管程序发生什么情况finally语句都要被执行,只有用System.exit(0),程序彻底结束,这条语名才不执行.
   { System.out.println("finally"); }   
    System.out.println("program is running here!");
  }
}

***故意用异常实现程序的跳转***
class Test
{ ....
  ....
  void fun()
  {  try
     { if (x==0)
          throw new XxxException("xxx");
       else
          throw new YyyException("yyy");
        .....
        .....
      }
      catch (XxxException e) //如果x==0的话,程序跳转到这里
      { ......}
      catch (YyyException e) //如果x!=0的话,程序跳转到这里  
      {.......}       
   }
    .....
 }


***子类重写父类的方法,抛出的异常,只能比父类少,不能比父类多***
class Test
{ public int devide(int x,int y) throws ArithmeticException,DevideByMinusException 
   {  if (y<0)
          throw new DevideByMinusException("devisor is"+y);
      int result=x/y;
      return result;
   }
}
class SubTest extends Test
{ public int devide(int x,int y) throws ArithmeticException
//这里抛出的异常只能是父类里有的,如父类方法中的全部抛出的异常,或是其中的异常,或都不写,但一定不能比父类多。
  {.....}
 }  

java实践(七)——异常类

实践目的1.了解异常的概念2.掌握异常的抛出和捕获3.了解自定义异常类 实践内容1.抛出与捕获异常public class Chap2_4_2 { public static void main(...
  • cnlht
  • cnlht
  • 2012-09-26 11:43:57
  • 1272

Java异常学习笔记(四)

自定义异常
  • a571293251
  • a571293251
  • 2015-02-02 20:06:47
  • 531

java异常学习笔记简介

异常处理笔记简介 1、首先想说的是String类的valueOf方法,其实java万物皆对象,对于所有引用类型的数据变量,都有那个toString()方法来输出,而对于基本数据类型的变量却没有该...
  • lx__angel
  • lx__angel
  • 2017-07-05 23:53:09
  • 173

疯狂Java学习笔记(49)------------异常处理机制

Java的异常处理机制  异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众...
  • u011225629
  • u011225629
  • 2015-05-22 20:44:11
  • 1068

《GPU高性能编程CUDA实战》学习笔记(六)

第6章 常量内存与事件
  • w09103419
  • w09103419
  • 2016-09-11 21:29:24
  • 578

【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整

 今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度。  在之前我们先来看一下图像矩阵数据的排列方式。我们以一个简单的矩阵来说明:对单通道图像排列如下:对于双通道图像排列如下:那么对于...
  • nicewe
  • nicewe
  • 2018-02-09 14:39:23
  • 171

Activiti 学习笔记七:连线(SequenceFlow)

  • 2016年09月08日 20:40
  • 22.14MB
  • 下载

Java异常练习题(带答案)

ps:案例来源于毕向东老师Java基础教程大家可以从我的资源库里面下载:
  • xinghuo0007
  • xinghuo0007
  • 2016-06-27 16:35:19
  • 732

AVR学习笔记七、基于DS18B20的温度测量实验.doc

  • 2010年04月11日 15:30
  • 453KB
  • 下载

java实现七参数转换功能

  • 2017年06月21日 17:07
  • 525KB
  • 下载
收藏助手
不良信息举报
您举报文章:java学习笔记(七)----异常
举报原因:
原因补充:

(最多只允许输入30个字)