我可以编写一个抛出异常的函数,可以在android中的onCreate中使用吗?

时间:2015-11-06 06:10:12

标签: java android

我正在设计一个以Context作为参数的API。

public myinit(Context context) throws SomeException
 {
        // Code Logic
        throw someException.
 }

问题:

调用抛出异常的Activity myinit()中的onCreate()是可接受的,也是最佳做法。

非常抱歉,如果这是一个非常基本的问题。

1 个答案:

答案 0 :(得分:1)

是的,你可以这样做,但是你必须抓住异常并处理它,否则如果你的应用程序崩溃有任何未处理的异常,你可以处理这样的异常。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_auth);

    try {
        myinit(this)
    } catch(SomeException ex) {
        // Handle exception. Like do some UI notification if its a user input exception.
    }

}

如果您没有捕获此异常,您的应用程序将崩溃,如果它的编译时异常您的Android工作室将提供红色下线,并且除非您处理此异常,否则您将无法构建应用程序。如果它的运行时异常,那么它将构建没有任何问题,但如果该函数在运行时抛出此异常(无论出于何种原因),您的应用程序将崩溃。

是的,这是可以接受的,最佳做法是正确处理这个异常。