在Java中,如果方法的输入参数无效,我们可以抛出一个IllegalArgumentException
(类型为RuntimeException
).在C++中,没有检查和未检查异常的概念.标准C++中是否有类似的异常可用于指示运行时异常?或者是否有一种不符合标准的共同风格,但每个人都在实践中遵循这样的情况?
或者,我应该创建自己的自定义异常并抛出它吗?
如果方法检查它的输入并检测到非法输入,它应该怎么做:引发异常(或使用其他错误机制)或什么都不做/忽略错误的输入?
在Java中,如果将null-references作为参数给出,则HashTable类会抛出NullPointerException.这有时很烦人,但我认为它可能有优势,因为错误很早就被捕获了.其他一些方法忽略了非法输入,什么都不做.这不太烦人,通常没有什么不好的事情发生,但可能有案例,那么这种行为会导致头痛 - 或者不是?
我不确定,哪种方式更好.所以我问你:你对这个问题怎么看?