java - getView() 不能抛出异常

标签 java android

我做了一个 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/

相关文章:

android - 文档页面中的相机示例在 android 2.3.x 上失败

java - 确定Android相机 Activity 使用哪个相机

java - 如何检测Java swing中MouseInput的双击?

java - 从 Jetty 6 迁移到 Jetty 8

java - 使用低通滤波器来计算平均值?

java - 如果单击或未单击按钮,则制作按钮方法

java - Android多通知BroadcastReceiver

java - 卡夫卡消费者。 commitSync 与 commitAsync

java - 使用 Atmosphere 进行实时协作编辑

android - 如何在 Android 上为 apache commons HttpClient 启用日志记录