我确信这个问题已经在许多最佳实践书籍中得到解决,但仍然......大多数时候我看到错误使用自定义异常的示例,因此我想知道使用它们的好情况是什么?
特别是,目前我正在为编译器课程开发类型检查器。因此,我有一个 SymbolTable 类,它与 Map 非常相似。与普通地图的主要区别在于必须定义每个符号最多一次,因此如果我们尝试插入的键已经存在于 SymbolTable 中,那么 put(String, Object) 操作应该会失败。
那么问题来了:每当我们尝试插入一个键,而该键已经存在于 SymbolTable 中时,SymbolTable 应该如何表现?我们应该有一个
boolean insert(String key, Object value);
在插入失败时返回“false”的方法?或者我们应该使用具有返回值“void”并在遇到重复值时抛出异常的插入方法?
提前致谢:)