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

标签 java android

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

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

问题:

在引发异常的 Activity 的 onCreate() 中调用此 myinit() 是可接受的最佳实践。

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

最佳答案

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

@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 工作室将给出红色下划线,除非您处理此异常,否则您将无法构建应用程序。如果它的运行时异常,那么它将毫无问题地构建,但如果该函数在运行时抛出此异常(无论出于何种原因),您的应用程序将崩溃。

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

关于java - 我可以编写一个抛出异常的函数,该函数可以在 android 的 onCreate 中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33560525/

相关文章:

android - Admob interstitial 在没有项目更改的情况下停止工作

Android - 假设 MotionEvent.ACTION_UP 将 100% 意味着用户已触摸 View 是否安全?

java - 在java程序中执行cd和pwd

java - 上传文件时出现 "Could not delete file C:\Users\..."错误

java - 'model' 和 'view' 之间的接口(interface)

java - Java中如何自动检测文件位置?

java - 导入jar文件时pyjnius "Class not found"

java - 如何通过 Android 的 Drive API 读取 Google 表格内容?

android - 如何将文件写入 Android 上的内部存储文件夹?

Android - 缺少 NDK 平台?