黑马程序员技术交流社区

标题: 异常处理语句try与catch [打印本页]

作者: 杜桂发    时间: 2011-9-16 15:35
标题: 异常处理语句try与catch
自己搞明白了,真汗啊,原来一想通才发现自己问得多么幼稚:L  
这个语句只能写在主函数里吗?下面这能正常运作,但如果把异常处理语句写到其他地方就不能通过编译.
class  Demo
{
         public static void main(String[] args)
        {
                Chu c = new Chu();
                try
                {
                        int x = c.chuFa(20,5);
                        System.out.println("x="+x);
                }
                catch (FuShuException fs)
                {
                        System.out.println("除数中出现了负数");
                }
        }
}

class FuShuException extends Exception
{
        FuShuException(String msg)
        {
                super(msg);
        }
}

class Chu
{
        public int chuFa(int a,int b)throws FuShuException
        {
                if(b<0)
                        throw new FuShuException("除负数,不合实际");
                return a/b;
        }
}
[ 本帖最后由 杜桂发 于 2011-09-16  18:55 编辑 ]
作者: 葛锐    时间: 2011-9-16 15:56
不懂你的意思? 你是说你认为只可以写在main方法里么?
不是这样的 只要是在方法里都可以使用的  并不局限于main方法  
在编码的时候 经常要用到的
一般是这样的
try
{
这里放入可能发生异常的代码
}
catch(Exception e)
{
这里放异常处理机制 是抛出  还是打印或是怎么的处理方式
}finally{
这里放不论是否出异常 都会正常出现的 例如System.out.println("出错了");
}
[ 本帖最后由 葛锐 于 2011-09-16  15:59 编辑 ]
作者: 匿名    时间: 2011-9-18 09:15
标题: 回复 楼主 的帖子
没理解楼主意思。。。。异常语句是有异常了进行捕获 要不就继续抛出。。。你说的放到其他地方是指哪点?你认为异常可以随处放吗?
作者: 匿名    时间: 2011-9-19 16:40
我知道楼主的意思了,不想让try{}catch(){}在main中运行的话,可以这样做
class Demo {
        public static void main(String[] args) {
                Chu c = new Chu();
                        int x = c.chuFa(20, 0);
                        System.out.println("x=" + x);
        }
}

class FuShuException extends Exception {
        FuShuException(String msg) {
                super(msg);
        }
}

class Chu {
        public int chuFa(int a, int b)   {
                try {
                        if (b <= 0)//这里不只是小于零而是小雨等于零
                                throw new FuShuException("除负数,不合实际");
                       
                } catch (Exception e) {

                e.printStackTrace();
                }
                return a / b;
        }
}




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