首页 > 其他分享 >空指针处理方案

空指针处理方案

时间:2024-09-29 15:13:47浏览次数:5  
标签:方案 String 处理 toString str null response 指针

空指针的bug处理

  • 出现A.xxxx的时候要考虑A如果为null的空指针异常

//误报,此时first报空指针风险,但是不可能
for (int i = 0; i < size; i++) {
TreeNode first = queue.pollFirst();
if (first.left != null) {
    queue.offerLast(first.left);
}

 

//处理前:response为空也不影响后面一句执行就会报空指针
if (response == null || response.getCode() == null || response.getCode() != 0) {
		logger.error("meituan query hotel detail plan fail{}", (response != null ? JSON.toJson(response) : "null"));
}
    result = response.getResult();


//处理后:
if (response == null) {
    System.out.println("meituan query hotel detail plan fail{}");
} else {
    String result = response.toString();
}

 

//字符串与文字的比较
String str = null;
if(str.equals(“Test”)){
     / *这里的代码将不会被触发,因为会抛出异常。* /
}

String str = null;
if(“Test”.equals(str)){
     / *正确的用例。不会抛出异常。* /
}

//if判断的布尔值比较
Boolean.TRUE.equals(xxx)

 

//检查方法的参数 
//执行方法的主体前,一定要检查它的参数为空值。只有在正确检查了参数后,才继续执行该方法。否则,可以抛出一个IllegalArgumentException并通知调用方法传递的参数有问题。
public static int getLength(String s){
   if(s == null)
        抛出新的IllegalArgumentException(“参数不能为空”);
   return s.length();
}

 

//优先使用String.valueOf()方法代替toString() 
//当程序代码需要对象的字符串表示形式时,避免使用该对象的toString方法。如果你的对象的引用等于null,则会抛出NullPointerException
//相反,考虑使用静态String.valueOf方法,该方法不会抛出任何异常并打印”null”,以防函数的参数等于null。
public static int getLength(String s){
   if(s == null) s.toString(); 

标签:方案,String,处理,toString,str,null,response,指针
From: https://www.cnblogs.com/complexlong/p/18439998

相关文章

  • Apache伪静态出现页面无法正常访问处理
    默认规则:apache RewriteRule^(.*)$index.php/$1[QSA,PT,L]这条规则适用于Apache采用模块化运行方式的情况。当请求URL不是目录或文件时,将所有请求重写为index.php/$1。备用规则:apache RewriteRule^(.*)$index.php[E=PATH_INFO:$1,QSA,PT,L]这条......
  • 图形视频处理软件Adobe After Effects(AE2024)软件下载安装
    目录简介软件特点下载推荐硬件简介AdobeAfterEffects,简称AE,是Adobe公司推出的一款专业的图形视频处理软件。它广泛应用于电影、广告、电视等影视制作领域,特别是在视频特效和后期制作方面。AE以其强大的功能和灵活的操作,成为设计和视频特技领域的首选工具,适合电视台、......
  • 大json字符串处理
    背景:当从API获取数据或与其他系统交换信息时。有时json字符串可能会非常庞大,以至于读取到内存中会导致内存溢出或者性能问题流式处理:如果JSON字符串过大,不适合一次性加载到内存中,可以考虑使用流式处理。例如,使用Jackson库的JsonParser,可以逐行解析JSON,从而避免一次性加载整个字......
  • 推出TMS320VC5416GWS120、TMS320VC5416PGE160、TMS320VC5416ZWS160定点数字信号处理器
    系列概述:TMS320VC5416定点数字信号处理器(DSP)基于先进的改进型哈佛架构打造,具有一条程序存储器总线和三条数据存储器总线。该处理器采用具有高并行能力的算术逻辑单元(ALU)、特定于应用的硬件逻辑、片上存储器和附加片上外设。高度专业化的指令集是TMS320VC5416操作灵活性和速度的基......
  • matlab-批处理图像质量变化并形成折线图 (PSNR)
    %修改路径就能用,图片分辨率要一致%clc;clearall;closeall;tic;%清理内存file_path='E:\test\resources\image\';%批量图像所在的文件夹下file_save_path='E:\test\resources\SaveImage\';%要存储的地址img_path_list=dir(strcat(file_path,'*.jpg'));%获取批量bmp格式......
  • 中电金信:保险企业级数据中台解决方案
    ​01业务痛点数据孤岛公司中的各个部门都有自己的数据,无法有效 连接或整合,不仅导致信息隔阂,还会影响决 策效率和数据分析的准确性,进而影响整个组 织的运营效率和竞争力。数据复用难题由于系统的限制,相同的数据在不同的系统中 不能复用,导致需要进行数据重复加工,不仅 ......
  • skynet框架:批量服务管理方案
    skynet很经典的用法是节点内会有批量的服务跑相同的模块逻辑。服务的生命周期管理显然是跟业务强关联的,需要根据实际业务对应做适配的生命周期管理方案。显然最直接的方案就是服务常驻,跟进程的生命周期同步,当服务的数量级不大时,认为消耗可控,方案是适用的,也避免过度设计。这里想谈......
  • 火语言RPA流程组件介绍--处理网页对话框
    ......
  • 脑电数据MNE预处理分析步骤与说明(个人总结版不断完善中)
    1.加载数据:加载原始数据到MNE中。2.加载电极位置信息:加载电极配置。3.查看原始信号:plot查看信号,插值坏导。(无坏导就不需要做)4.滤波:带通滤波0.1-60hz,陷波去除50hz工频干扰。5.独立成分分析:运行ICA分析,画出ICA各成分地形图。6.去除眼电伪迹:根据ICA各成分地形图去除眼电成分,......
  • JS数组指针prev、current、next的实现方式,涉及是否删除当前元素的情况分析
    背景由于业务,需要做一个循环切换的轮播图效果,循环展示列表中的每个item,但是由于切换(从左往右移动,遇到末尾则跳到开头)的过程中可能会删掉当前元素,所以需要更新下标后再切换。由于涉及到几个临界条件,这里列出来处理方式,以便后续参考。代码这里给出的简化过后的代码:<template>......