我做了一个 SingleItemAdapter
extends ArrayAdapter
,这个定制的 Adapter 用于 ListView
。
在这个 SingleItemAdapter
中,我做了一些数据库工作,所以我想在初始化 GUI 的 getView()
方法中抛出异常。
但是 public View getView(int position,View convertView,ViewGroup parent)
抛出异常
将得到 Exception Exception is not compatible with throws clause in ArrayAdapter.getView(int, View, ViewGroup)
ArrayAdapter、BaseAdapter、Adapter 不抛异常,为什么呢?
最佳答案
Java 中有两种不同类型的异常。检查异常要求在编译时通过方法声明或 try/catch block 处理异常。运行时异常没有这个要求。
您不能将新类型的异常添加到重写的方法声明中,因此您要么需要捕获异常并在内部处理它,要么使用运行时异常。
在您的情况下听起来您可能想要捕获数据库异常,并在您的代码中很好地处理它们。也许,如果数据库访问失败,您可以显示一条错误消息来解释问题。
如果您只是抛出一个运行时异常,那么用户可能会看到一个强制关闭屏幕,从用户体验的角度来看,这是一个非常糟糕的选择。
关于java - getView() 不能抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4653492/