黑马程序员技术交流社区

标题: 一点异常的小问题 [打印本页]

作者: 杨雪松    时间: 2012-10-28 21:48
标题: 一点异常的小问题
本帖最后由 杨雪松 于 2012-10-30 10:59 编辑

{:soso__4712760984652999281_4:}现在颈椎变得不舒服了
是不是颈椎病的前兆啊
我还年轻啊元芳~

做了个异常练习
  1. package t10;
  2. /*
  3. 有一个圆形和长方形。
  4. 都可以获取面积。对于面积如果出现非法的数值,视为是获取面积出现问题。
  5. 问题通过异常来表示。
  6. 现有对这个程序进行基本设计。

  7. *
  8. */
  9. class wrong extends Exception
  10. {
  11.         wrong(String msg)
  12.         {
  13.                 super(msg);
  14.         }
  15. }
  16. interface mianji
  17. {
  18.         void method() throws wrong;
  19. }
  20. class zheng implements mianji
  21. {
  22.         private int chang,kuan;
  23.         zheng(int chang,int kuan)
  24.         {
  25.                 this.chang=chang;
  26.                 this.kuan=kuan;
  27.         }
  28.         public void method() throws wrong
  29.         {
  30.                 if(chang<=0||kuan<=0)
  31.                         throw new wrong("数据异常");
  32.                 System.out.println(chang*kuan);
  33.         }
  34. }

  35. public class ExceptionTest {
  36.         public static void main(String[] args)
  37.         {
  38.                
  39.                 zheng z=new zheng(-2,3);//就是这一句啦;
  40.          try
  41.                 {
  42.                         z.method();
  43.                 }
  44.                 catch(wrong w)
  45.                 {
  46.                         System.out.println(w.toString());
  47.                 }
  48.                 System.out.println("over");
  49.         
  50.         }        
  51. }
复制代码
毕老师在视频中讲到41行那句应该放在try的内部
可是刚才试了试放在里面外面结果都是一样的
这是为什么?





作者: 武庆东    时间: 2012-10-28 21:55
代码不够全~
作者: 王永荣    时间: 2012-10-28 23:45
那是因为你是在类方法里判断传入的数字是正负并抛出异常,当然只有调用类方法method()的时候才会有可能抛出异常。
把if(..) throw...这句放在构造函数里,并声明异常类,你再试试?
作者: 林志进    时间: 2012-10-29 12:00
是不是说的不是异常问题啊。 zheng z=new zheng(-2,3);把这句话声明在外面只是单纯为了把z这个变量放在栈内存中啊,
否则trycatch后如果程序再想调用这个try里面的z变量是访问不到的,说的是编程的习惯吧。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2