A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨雪松 中级黑马   /  2012-10-28 21:48  /  1722 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨雪松 于 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的内部
可是刚才试了试放在里面外面结果都是一样的
这是为什么?




评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

3 个回复

正序浏览
是不是说的不是异常问题啊。 zheng z=new zheng(-2,3);把这句话声明在外面只是单纯为了把z这个变量放在栈内存中啊,
否则trycatch后如果程序再想调用这个try里面的z变量是访问不到的,说的是编程的习惯吧。。。
回复 使用道具 举报
那是因为你是在类方法里判断传入的数字是正负并抛出异常,当然只有调用类方法method()的时候才会有可能抛出异常。
把if(..) throw...这句放在构造函数里,并声明异常类,你再试试?
回复 使用道具 举报
代码不够全~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马