鱼C论坛

 找回密码
 立即注册
查看: 2890|回复: 3

[技术交流] 【Java:异常处理遇到的问题。】

[复制链接]
发表于 2018-3-27 19:35:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看两份代码:

1)
package practice;

public class Circle {

        double radius;

        public Circle() {
                this.radius = 1.0;
        }

        public Circle(double radius) {
                try {
                        setRadius(radius);
                } catch (Exception e) {
//                        e.printStackTrace();
                        System.out.println("SHIT!");
                        System.exit(0);
                }
        }

        public double getRadius() {
                return radius;
        }

        public void setRadius(double radius) throws Exception{  //**
                if (radius < 0)
                        throw new Exception("The radius cannot be less than 0!");
                this.radius = radius;
        }

        public static void main(String[] args) {

                System.out.println("The radius of this circle is "+new Circle().radius);
                System.out.println("The radius of that circle is "+new Circle(5.2).radius);
                System.out.println("The radius of that circle is "+new Circle(-2).radius);
        }

}

2)
package practice;

public class Pra019 {

        public static void main(String[] args) {  //**

                try {
                        Thread.sleep(1000);
                        throw new Exception("Crashed!");
                } catch (Exception e) {
                        System.out.println(e.getMessage());
                }

        }

}
-----------------------------------------------------------------------------------

第一份代码,请主要看setRadius那一个方法。
代码看完了。好,我的问题是:为什么同样是throw一个新的(new)异常,为什么在setRaduis那里必须在方法名后面throws(声明)一下,而在main方法的main名字后面却不需要呢??(为了方便大家看,我们已经把相关的那两行方法代码用注释标出来了。)请踊跃发言,谢谢大家!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-27 21:17:41 | 显示全部楼层
你不是调用setRadius()这个函数时候捕捉了吗,所以给捉住了就不用再往外扔了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-27 21:17:57 | 显示全部楼层
你不是调用setRadius()这个函数时候捕捉了吗,所以给捉住了就不用再往外扔了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-28 00:27:16 | 显示全部楼层
你说的是在构造方法中catch捕捉吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 01:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表