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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zcbyzcb 中级黑马   /  2013-5-21 12:09  /  2209 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当RuntimeException异常运行时,程序直接停止了,表示代码需要修正,可是异常是用来处理客户可能出现的问题,程序是停止了,可是代码修正,客户还是无法解决呀,难道说对于RuntimeException我们都不进行处理。这样反馈给用户的信息,用户依然看不懂呀。可是要处理就必须还得执行后边的程序。
/*
求长方形和圆的面积,对于出现的非法数据,当做异常处理。
*/
interface  GetArea
{
        public void getArea();
}
class Rec implements GetArea
{
        double len,wid;
        Rec(double len, double wid) throws NoValueException
        {
                if(len<=0 || wid<=0)
                {
                        throw new NoValueException("出错了");
                }
                this.len=len;
                this.wid=wid;
        }
        public void getArea()
        {
                System.out.println(len*wid);
        }
}

class NoValueException extends RuntimeException
{
        NoValueException(String msg)
        {
                super(msg);
        }
}
class ExceptionTest
{
        public static void main(String[] args)
        {
                /*try{
                       
                } catch (NoValueException n)
                {
                       
                }*/
                Rec r=new Rec(2,-3);
                r.getArea();
                System.out.println("over");
        }
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

4 个回复

倒序浏览
你要明白,现实情况中,代码上的异常都是要程序员处理的,不可能抛出给用户。抛出给用户的那只能是由于用户使用错误引起的程序异常。

点评

尽量用代码的形式给楼主体现出来,这样你学习了,他也学到了,加油吧  发表于 2013-5-21 12:53

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

回复 使用道具 举报
同意无妄无涯的 我再补充点自己的理解,程序异常很多时候只是返回给程序员一个大概的错误,它在执行到那的时候执行不下去了,报出一个错误提示给程序员修改的,还有假设它能执行下去,那想象一下他怎么执行;而像你说的那种也不叫异常那是程序员在写代码的时候就已经想到的几处可能出的问题,从而设计的结果  不管什么都是人去做的,异常也是要你去解决的错误而已,要是都能运行那在程序中都抛出异常得了还调试什么   像你这段代码   Rec(double len, double wid) throws NoValueException
        {
                if(len<=0 || wid<=0)
                {
                        throw new NoValueException("出错了");
                }
                this.len=len;
                this.wid=wid;
        }
你就必须要考虑数据是不是double类型的,不是又该怎么排除或转换
回复 使用道具 举报
{:soso_e127:}
回复 使用道具 举报
Runtime的异常定义时,是针对那些乱传值的用户。比如被除数不能为0,用户非要写的0进去,那我们能做的是就把程序停掉。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马