面试题答案
一键面试- 自定义错误类型:
在Java中,可以通过继承
Exception
类或其子类(如RuntimeException
)来创建自定义错误类型。以下是一个自定义HashMapOperationException
的示例:public class HashMapOperationException extends RuntimeException { public HashMapOperationException(String message) { super(message); } }
- 在
HashMap
操作时捕获并处理错误: 假设在向HashMap
中添加元素时,如果某个特定条件不满足,抛出我们自定义的错误。import java.util.HashMap; import java.util.Map; public class HashMapErrorHandling { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); try { addElement(map, "key1", -1); } catch (HashMapOperationException e) { System.out.println("捕获到自定义错误: " + e.getMessage()); } } public static void addElement(Map<String, Integer> map, String key, int value) { if (value < 0) { throw new HashMapOperationException("值不能为负数"); } map.put(key, value); } }
上述代码中:
- 首先定义了
HashMapOperationException
自定义错误类型,它继承自RuntimeException
,这意味着它是一个未检查异常(不需要在方法声明中显式声明抛出)。 - 在
addElement
方法中,当要添加到HashMap
的值为负数时,抛出HashMapOperationException
。 - 在
main
方法中,通过try - catch
块捕获并处理这个自定义错误。
在Python中:
- 自定义错误类型:
Python中可以通过继承
Exception
类来创建自定义错误类型。class HashMapOperationException(Exception): pass
- 在
字典(类似HashMap)
操作时捕获并处理错误:def add_element(dictionary, key, value): if value < 0: raise HashMapOperationException("值不能为负数") dictionary[key] = value my_dict = {} try: add_element(my_dict, "key1", -1) except HashMapOperationException as e: print(f"捕获到自定义错误: {e}")
在Python代码中:
- 定义了
HashMapOperationException
自定义异常类。 add_element
函数在值为负数时抛出该自定义异常。- 通过
try - except
块捕获并处理这个自定义异常。