为什么我这个会出错

来源:1-3 Java中通过案例学习 try...catch...finally

qq_流苏如画_2

2017-02-27 13:03

package com.imooc.test;

public class TryCatchTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        TryCatchTest tct=new TryCatchTest();
        int result=tct.test();
        System.out.println("test()fangfa执行完毕,返回值为"+result);

    }
    public int test(){
        int divider=10;
        int result=100;
        try{
            while(divider>-1){
                divider--;
                result=result+100/divider;
                return result;
            }
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("循环抛出异常了");
            return -1;
        }

        
        }

        

}

写回答 关注

6回答

  • 孤独的小猪
    2017-07-26 15:45:08

    return 写在while循环里面,导致只执行一次循环,就return 结束了。

    package com.imooc.test;
    
    public class TryCatchTest {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            TryCatchTest tct = new TryCatchTest();
            int result = tct.test();
            System.out.println("test()fangfa执行完毕,返回值为" + result);
    
        }
    
        public int test() {
            int divider = 10;
            int result = 100;
            try {
                while (divider > -1) {
                    divider--;
                    result = result + 100 / divider;
                }
                return result;
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("循环抛出异常了");
                return -1;
            }
        }
    
    }


  • dh_hu
    2017-03-05 14:32:04

    try块中 return result应该放在 while 循环的外面

    try{
         while(divider>-1){
             divider--;
             result=result+100/divider;
         }
         return result;
     }catch(Exception e){
         e.printStackTrace();
         System.out.println("循环抛出异常了");
         return -1;
     }

     


  • 幸福是可积的
    2017-02-28 23:54:44

    return result;
    这句代码应该写在循环外面,
    你写在循环里面了,
    当写在循环内时,循环执行到return result;
    就立即结束该方法了,就不会引发异常了

  • 布兜4227148
    2017-02-27 13:49:57

    没有返回值啊   在捕获异常块里面写返回值是不行啊  万一没有异常呢??那就没有返回值了啊


  • 阿莫林西
    2017-02-27 13:33:55

    错误的信息是什么啊?

  • 果壳中的我
    2017-02-27 13:31:41

    public int test(){

            int divider=10;

            int result=100;

            try{

                while(divider>-1){

                    divider--;

                    result=result+100/divider;

                    return result;

                }

            }catch(Exception e){

                e.printStackTrace();

                System.out.println("循环抛出异常了");

                return -1;

            }

    //方法的结尾处需要一个返回值,而不是在try catch内。

    return 0;

    }


Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题