Android开发中"逃避式"防止大多数Crash的策略

Android开发中经常在我们对逻辑分支考虑不周全的时候出现预料之外的问题,导致出现异常,没有对异常进行处理使得程序Crash。例如:创建一个TextView对象,没有使用findViewById对其进行实例化就操作此对象。就会出现NullPointException的异常。相应的程序必然出现Crash。这样的错误当然对一个程序员来讲是必须整改的一个错误。然而,在某些情况下我们是很难预料到会不会出现异常的。而出现了异常我们就要让程序直接崩溃吗?例如,一个网络请求回来的数据,我们使用Gson框架进行反序列化成一个业务bean。某个字段空了,直接就因为这一个字段空了就让程序Crash吗?显然不合理!下面将提供一种”逃避”问题的方式来有效的解决此问题。

                                        Bundle bundle=new Bundle();
                                        bundle.putString("title",sms.getName());
                                        bundle.putString("left", sms.getMainSaleman().getName());
                                        String str=sms.getCreateDate();
                                        str=str.substring(0,10);
                                        bundle.putString("right",str);
                                        bundle.putString("id",sms.getId());
                                        sourcelist.add(bundle);

以上代码片段中,left对应的一个字段是可能为null的。程序运行到这就会抛出NullPointException的异常,自然而然的程序就Creash了。怎么避免?很简单。Try-Catsh一下。

                                    try {
                                        Bundle bundle=new Bundle();
                                        bundle.putString("title",sms.getName());
                                        bundle.putString("left", sms.getMainSaleman().getName());
                                        String str=sms.getCreateDate();
                                        str=str.substring(0,10);
                                        bundle.putString("right",str);
                                        bundle.putString("id",sms.getId());
                                        sourcelist.add(bundle);
                                    }catch (NullPointerException e){
                                        //将异常信息打印到控制台
                                        e.printStackTrace();
                                        Log.i("NUll","捕获到空指针异常");
                                    }

这样程序就不会Crash了,以此类推,程序因为异常没有及时处理而引发的Crash都可以这样解决。当然,这只是粗暴的解决了问题。从根本上解决的话还需要和后台开发的同事进行沟通,对返回的数据进行有效的约束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值