避免应用程序在捕获异常时崩溃

Avoid App crashing when catch Exception

我有一个从在线文件中读取行的互联网操作。它位于 try-catch 块中。当执行失败时(例如缺少互联网连接),操作将进入 catch 块并且应用程序崩溃。如何避免崩溃?

try {
        BufferedReader reader = new BufferedReader(new InputStreamReader((new URL(MegaMethods.url+params[0])).openStream()), 8192);
        String line;
        while ((line = reader.readLine()) != null) {
            count++;
        }
        reader.close();
    }
    catch (Exception e){
    // Here I want to do something to avoid app crash
    }

在尝试获取文件之前,请尝试检查设备是否具有网络连接。如果找不到网络,则避免该任务。

代码示例 - 调用此方法。如果 returns 为真,则网络可用。

public boolean isNetworkAvailable() {
    boolean status=false;
    try{
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getNetworkInfo(0);
        if (netInfo != null && netInfo.getState()==NetworkInfo.State.CONNECTED) {
            status= true;
        }else {
            netInfo = cm.getNetworkInfo(1);
            if(netInfo!=null && netInfo.getState()==NetworkInfo.State.CONNECTED)
                status= true;
        }
    }catch(Exception e){
        e.printStackTrace();  
        return false;
    }
    return status;

    } 

另外,我同意你的看法,由于某些原因,应用程序可能会抛出异常并到达 Catch 块。但请注意,即使 catch 块为空,它也不会使您的应用程序崩溃。

应用程序可能会因为 try catch 块之外的某些代码而崩溃。