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学习笔记七——异常处理

****Java异常处理**** 异常:程序中出现错误导致中断了正常的指令流。 编译错误逻辑错误都不是异常,异常是可以正常运行的程序在运行中可能发生的错误。没有异常处理的代码可能非正常结束出现严重的...

黑马程序员java学习笔记——内部类、异常、包

今天的要写的内容是内部类和异常。CSDN写有点麻烦,每次写完,想去生成的网页看一下有没有要改的地方,还要等着审核通过才能看到,真心麻烦。     内部类     定义:将一个类定义在另一个类的里面,...

java异常处理的学习笔记

程序在执行时,如果异常没有处理,程序就会被迫终止,异常出来能使程序可以处理预期之外的结果,是程序能顺利运行。 异常可大致分为三种:系统错误、异常、运行时异常 系统错误用Error类表示,Error描述...

Java for Web学习笔记(七五):国际化i18n(3)异常显示的国际化

问题和解决方法 App因某种原因会抛出异常,我们会记录在log中,同时也要告知用户出了问题,一些错误信息需要显示给用户,这就有国际化的需求。我们不应简单将原始的Exception直接显示给用户: 异...

Java学习笔记四。设计模式、基本数据类型、包装类、异常、断言、包、访问权限、命名规范、jar

设计模式: 工厂设计模式 代理设计模式 一共23种设计模式,用的一般比较多的就是工厂模式和代理模式。 一般写字符串比较的时候把常量或者字符串写在前面,如: String temp = “a”...

java学习笔记8——异常处理

任何好的编程语言和编程人员都不会忽视对异常的处理,作为比较热门的面向对象编程的语言——Java,异常处理机制自然也是其重要特色之一。     一般解释异常,都将其说为:编程中的错误。但是,实际上这个...

java学习笔记2——异常

1、Java异常介绍 总类;Throwable 是一个接口  有两个子类 Exception (z主要了解和使用的), Error(系统级别的异常,不可控) Exception 下面很又很多异常,常见...

黑马程序员--java异常学习笔记

------- android培训、java培训、期待与您交流! ----------  一. java异常的定义      在《java编程思想》中这样定义 异常:阻止当前方法或作用域继续执行...

异常处理——毕向东Java基础教程学习笔记

1.异常:就是程序运行过程中出现的不正常情况。 异常的由来:问题本身也是日常生活中一个具体的事物,也可以通过java类的形式进行描述,并封装成对象。                        ...

Java学习笔记--异常处理

我们在写程序的时候经常会出现许多意想不到的错误,在Java中,错误也是被包装成了各种子类实例。只要我们能捕捉到包装错误的对象,就能做出对应的处理方式。 语法与继承架构使用try,catch Jav...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java学习笔记(七)----异常
举报原因:
原因补充:

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