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