黑马程序员技术交流社区

标题: RunntimeException [打印本页]

作者: zcbyzcb    时间: 2013-5-21 12:09
标题: RunntimeException
当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");
        }
}
作者: 无妄无涯    时间: 2013-5-21 12:48
你要明白,现实情况中,代码上的异常都是要程序员处理的,不可能抛出给用户。抛出给用户的那只能是由于用户使用错误引起的程序异常。
作者: 忧伤    时间: 2013-5-21 14:53
同意无妄无涯的 我再补充点自己的理解,程序异常很多时候只是返回给程序员一个大概的错误,它在执行到那的时候执行不下去了,报出一个错误提示给程序员修改的,还有假设它能执行下去,那想象一下他怎么执行;而像你说的那种也不叫异常那是程序员在写代码的时候就已经想到的几处可能出的问题,从而设计的结果  不管什么都是人去做的,异常也是要你去解决的错误而已,要是都能运行那在程序中都抛出异常得了还调试什么   像你这段代码   Rec(double len, double wid) throws NoValueException
        {
                if(len<=0 || wid<=0)
                {
                        throw new NoValueException("出错了");
                }
                this.len=len;
                this.wid=wid;
        }
你就必须要考虑数据是不是double类型的,不是又该怎么排除或转换
作者: zcbyzcb    时间: 2013-5-22 12:44
{:soso_e127:}
作者: 骑上最爱    时间: 2013-5-22 13:50
Runtime的异常定义时,是针对那些乱传值的用户。比如被除数不能为0,用户非要写的0进去,那我们能做的是就把程序停掉。




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