在使用我们的源代码中的IllegalArgumentException
方法处理NullPointerException
,ClassCastException
,Collection#add()
,add()
时,使用元素添加元素是否合适? <div id='myDate'>
<input type="text" type="text" class="form-control"/>
</div>
方法?
答案 0 :(得分:1)
不,你应该编写代码,以便知道它们不会发生。即不要尝试修改不可修改的集合,因为这会导致UnsupportedOperationException
等。
此外,你怎么处理它们?
答案 1 :(得分:1)
这取决于你对“句柄”的意思。
您绝对应该在应用程序中记录这些异常某处,而不一定接近Collection.add()
来电。一些顶级包装器可能是更好的地方。
但是,如果你发现这些例外(或任何其他例外),请问自己“虽然add()
没有成功,但我可以正常继续这里吗?”。根据我的经验,在大多数情况下,你不能 - 你正在添加元素,因为这是你的算法所需要的,所以它会失败或产生错误的结果。因此,您希望告诉调用者您无法完成任务,这意味着抛出异常或更容易让异常闯入您的调用者。
只是,你不希望你的整个应用程序由于一个本地程序员错误而停止,所以包含顶级菜单函数,服务请求或类似事物的包装器是有意义的,捕获并记录所有Throwables,通知用户并使应用程序进入接受下一个命令/请求的状态(如果这不会自动发生)。
所以,最懒的程序员经常生成最强大的代码(异常),因为他永远不会引入不必要的catch子句。