我的问题是关于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();
}