方法test报错,需要return

方法test报错,需要return

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class TryDemoTwo {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int result = test();
        System.out.println(result);
    }
 
    public static int test() {
        Scanner sc = new Scanner(System.in);
        try {
            int one = sc.nextInt();
            int two = sc.nextInt();
            return one / two;
        catch (ArithmeticException e) {
            System.out.println("除数不能为0");
            return 0;
        catch (Exception e) {
            System.out.println("总异常输出");
        finally {
            System.out.println("运算结束");
        }
    }
}

上述是视频4-8的11:25的代码段,文字不一样,其他一样。

有一个问题,

public static int test() {

编译器报错。

This method must return a result of type int


是我照着课程录的有问题?还是什么情况?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

如下是课程内容的截图,不知道你对比的是否是4-8return关键字这节视频。

http://img1.sycdn.imooc.com/climg//5979627200017e3005550416.jpg

  • xxxycl 提问者 #1
    原因找到:finally的return可以去掉,但catch中,缺少一个return代码。
    2017-07-28 14:57:40
飞思雨 2017-07-28 21:11:31

视频中除了finally没有return,try和return代码块后面都有return的,所以没问题的;而当多重catch的时候,程序运行前并不知道会出现什么异常,所以每个catch代码块都需要有一个return。

Tender10 2017-07-27 10:10:51

你可以看一下视频哦,老师讲的内容中是有return的。需要return的原因是,test()方法是一个有返回值的方法,所以需要return。

  • 提问者 xxxycl #1
    那就是视频中演示有错误?视频中的代码是不存在return的。我是指带个test()方法。 上述代码直接放在eclipse中,是报错的。而我比对了下,视频中演示的方法,未加return,但也正常运行,没有报错。
    2017-07-27 11:24:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师