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

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


题:

在Activity的myinit()中调用此onCreate()会引发异常,这是可以接受的,也是一种最佳做法。

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

最佳答案

是的,您可以执行此操作,但是您必须捕获并处理该异常,否则,如果您的应用程序崩溃时有任何未处理的异常,则可以像这样处理异常。

@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 Studio将在下划线处显示红色,除非您处理此异常,否则您将无法生成该应用程序。如果它的运行时异常,那么它将编译没有任何问题,但是如果函数在运行时抛出该异常(无论出于何种原因),您的应用程序将崩溃。

是的,这样做是可以接受的,并且最佳实践是正确处理此异常。

10-07 19:34
查看更多