Java / Android:如何使用返回类型"List<MyType>"?



我的问题是关于Java/Android:

我创建了一个类MyClass,它有一个返回List<MyType> = new ArrayList<MyType>()的方法getAllData()。在另一个类MyOtherClass中,我调用这个方法,并希望将返回的列表写入另一个List<MyType>

但是我得到以下错误:未处理的异常类型exception

我该怎么办?

代码如下:

MyClass.java

 public List<MyType> datas = new ArrayList<MyType>();
public List<MyType> getAllData() throws Exception{
//add some things to datas... 
return datas;
}

MyOtherClass.java

 public void fetchData(){
    MyClass mydatas = new MyClass();
    List<MyType> thedatas = mydatas.getAllData();
 }

我该如何解决这个问题?由于语句周围有"try/catch(Exception e)",似乎无法从getAllData();

获得返回的列表。

提前感谢!

声明getAllData方法来抛出Exception。编译器现在询问您,如果抛出了exception类型的异常,该如何处理。

永远不要抛出Exception作为方法签名的一部分。这太笼统了。相反,您应该尝试只抛出可能发生的特定异常。

如果您不希望fetchData必须处理异常,那么您必须声明fetchData来抛出相同的异常,或者使getAllData捕获异常并在抛出异常时返回适当的值。

由于getAllData() 可能抛出一个检查异常(即,一个不是RunTimeException的异常),您必须用try-catch

包围语句。
public void fetchData() {
    MyClass mydatas = new MyClass();
    try {
        List<MyType> thedatas = mydatas.getAllData();
    } catch (Exception ex) {
        // display or log exception name
    }
}

或者在方法名后添加throws子句。

public void fetchData() throws Exception {
    MyClass mydatas = new MyClass();
    List<MyType> thedatas = mydatas.getAllData();
}

相关内容

最新更新