Java中的True-way解决方案:解析2个字符串中的2个数字,然后返回它们的总和
相当愚蠢的问题。给定代码: public static int sum(String a, String b) /* throws? WHAT? */ { int x = Integer.parseInt(a); // throws NumberFormatException int y = Integer.parseInt(b); // throws NumberFormatException return x + y; } 您能告诉我Java是否不错?我在说的NumberFormatException是一个未经检查的异常。您不必将其指定为sum()签名的一部分。而且,据我所知,未检查的异常的想法只是表明程序的实现是不正确的,甚至更多,捕获未检查的异常是一个坏主意,因为这就像在运行时修复错误的程序一样。 有人可以澄清一下: 我应该指定NumberFormatException方法签名的一部分。 我应该定义自己的检查异常(BadDataException),NumberFormatException在方法内部进行处理,然后将其重新抛出BadDataException。 我应该定义自己的检查异常(BadDataException),以某种方式(如正则表达式)验证两个字符串,BadDataException如果不匹配则将其抛出。 你的想法? 更新: 想象一下,出于某种原因,您不是应该使用开放源代码框架。您查看方法的签名并思考-“好,它永远不会抛出”。然后,有一天,您遇到了一个例外。正常吗 更新2: 有评论说我sum(String, String)的设计不好。我绝对同意,但是对于那些相信,如果我们拥有良好的设计,就不会出现原始问题,这是一个额外的问题: 问题定义是这样的:您有一个数据源,数字存储为 Strings。该源可以是XML文件,网页,带有2个编辑框的桌面窗口,无论如何。 您的目标是实现采用这2 Strings的逻辑,并将其转换为ints并显示消息框,说“和为xxx”。 无论您使用什么方法来设计/实现此功能,您都将拥有以下两点内部功能: 在那里你转换的地方String,以int 加2int秒的地方 …