小编Mit*_*ski的帖子

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;
}
Run Code Online (Sandbox Code Playgroud)

你能告诉它是不是很好的Java?我所说的是,NumberFormatException是一个未经检查的例外.您不必将其指定为sum()签名的一部分.此外,据我所知,未经检查的异常的想法只是表示程序的实现是不正确的,甚至更多,捕获未经检查的异常是一个坏主意,因为它就像在运行时修复坏程序.

请有人澄清是否:

  1. 我应该指定NumberFormatException为方法签名的一部分.
  2. 我应该定义自己检查的exception(BadDataException),NumberFormatException在方法内部处理并重新抛出它BadDataException.
  3. 我应该定义自己检查的异常(BadDataException),像正则表达式一样验证两个字符串,BadDataException如果它不匹配则抛出我的字符串.
  4. 你的想法?

更新:

想象一下,它不是一个开源框架,你应该出于某种原因使用它.你看看方法的签名并思考 - "好吧,它永远不会抛出".然后,有一天,你有一个例外.这是正常的吗?

更新2:

有一些评论说我sum(String, String)的设计不好.我绝对同意,但对于那些认为如果我们有好的设计就不会出现原始问题的人来说,这是一个额外的问题:

问题定义如下:您有一个数据源,其中数字存储为Strings.这个源可能是XML文件,网页,带有2个编辑框的桌面窗口,等等.

你的目标是实现采用这些2 String秒的逻辑,将它们转换为ints并显示消息框,说"总和是xxx".

无论您使用什么方法来设计/实现它,您都将拥有以下2点内部功能: …

java parsing exception

84
推荐指数
3
解决办法
4803
查看次数

Internet Explorer xx.yy网站问题

如果您的网站遵循此模式(http://xx.yy/),则Internet Explorer不会包含任何Cookie.有解决方案吗

例如:

cookies internet-explorer

14
推荐指数
2
解决办法
3119
查看次数

Java维基引擎

有很多Java wiki引擎.我目前正在寻找良好的轻量级wiki,类似Stack Overflow上的社区wiki,可以轻松集成到切除应用程序中.

java wiki java-ee

11
推荐指数
1
解决办法
3445
查看次数

用于检查资源是否存在的REST标准

什么是检查资源是否存在的REST方法?假设您有一些名为Project的资源.通过我的理解,其中一个就是这样:

获取资源

GET /rest/projects/123

GET /rest/projects/someCriteria

GET /rest/projects/listOfIds
Run Code Online (Sandbox Code Playgroud)

这很简单,但是如果可用的话,整个对象都被检索出来,我们只想检查它是否在那里.是否有更优雅的解决方案,也许使用HEAD?

rest web-services web

10
推荐指数
1
解决办法
4045
查看次数

从大项目中获取代码统计信息

我对代码统计工具感兴趣.具体来说,我需要获得有关Java EE代码的统计信息,但任何代码分析器都可以.我应该开始创建自己的一个还是有一些你用过的项目?

恩.LOC,班级数量,库...

你有什么经历?

java statistics evaluation metrics code-analysis

9
推荐指数
2
解决办法
7744
查看次数

读/写xBASE(DBASE 3-5/DBF)文件

有没有什么好的库可以用java或任何其他语言读/写DBF文件?

java database legacy dbf

5
推荐指数
1
解决办法
1万
查看次数

自动文本翻译

哪些工具或Web服务可用于机器文本转换.

例如

ENGLISH TEXT > SERVER or LIB > GERMAN TEXT
Run Code Online (Sandbox Code Playgroud)

图书馆也是可以接受的.

谷歌的语言API只有一个?

nlp web-services machine-learning machine-translation

5
推荐指数
1
解决办法
2087
查看次数

Java转换/类加载器问题

以下是问题的简化版本:

 SomeClass c = (SomeClass) obj.getSomeClassParent()
Run Code Online (Sandbox Code Playgroud)

并非总是如此,有时会触发异常

 org.somepackage.SomeClass can't be cast to org.somepackage.SomeClass 
Run Code Online (Sandbox Code Playgroud)

这怎么可能 ?我想这与JAI imageio是本机lib的事实有关,但是中继怎么会发生这种情况?我可能错过了什么,但是什么?

I'm using JAI imageio version 1.1 
dcm4che 2.0.21  DICOM lib
Run Code Online (Sandbox Code Playgroud)

这是原始代码

  ImageInputStream iis = ImageIO.createImageInputStream(src);
  Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
  ImageReader reader = iter.next();
  DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam();
Run Code Online (Sandbox Code Playgroud)

而原来的例外

org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam can't be cast to    
org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam
Run Code Online (Sandbox Code Playgroud)

异常图像http://img215.imageshack.us/img215/3894/exception.jpg

java java-native-interface casting classloader javax.imageio

3
推荐指数
1
解决办法
2705
查看次数

Android和Java中的短裤

我编写了一些使用字符串来表示时间的代码,例如"0620",但经过仔细考虑后,我意识到这些可以解析为短路,以便比较性能和存储增益.

在一个单元测试中,我写了一个简短的0620与一个返回值620进行比较,期望这个工作.但是,测试0620等于620(两者都是短路)失败.

错误消息说0620被中断为400(400!= 620解释失败).删除线索0解决了问题,但我想知道,这是怎么回事?

这不起作用

assertEquals("Time Failed", 0620, st.GetTime());
Run Code Online (Sandbox Code Playgroud)

这个作品

assertEquals("Time Failed", 620, st.GetTime());
Run Code Online (Sandbox Code Playgroud)

java android short

2
推荐指数
1
解决办法
116
查看次数