(转)近天从NullPoint异常说起,先看以下的代码
String defaultFollowGroup = ConfUtil.getValue("defaultFollowGroup").toString();
今天由于配置文件里的defaultFollowGroup这个属性没有写,造成抛出空异常,由于注册用户也用到了这段代码,
造成了用户注册过程也抛错,服务抛错,前台高速服务处理模块对于出现异常没有继续处理,造成出现异常时,没有打印出任何返回值。
通过统一规范,可以在一定程度上减少这类问题出现的几率,比如后台服务必须trycatch,把异常处理做好。
从代码的健壮性上讲,ConfUtil.getValue("defaultFollowGroup").toString();这句相当差,因为ConfUtil不处理空值情况,造成toString()
抛出异常。面向对象编程里,连续的“.”是非常危险的,除非每一个方法都做好了异常处理。在每一次“.”的时候,都要思考前边得到的对象
有没有可能是空的。
比较好的改进方法是,增强工具类,简单来说,由于读取配置文件大部分都是要得到字符串,可以增加一个默认的处理过程,比如空值时
返回""或者抛出明确的异常。或者增加一个重构方法,标明对于空值时的处理方式,isReturnNullWhenPropertyIsNull。
早些年由于此类问题出过一些事故,所以每次看到连续的“.”我都会神经过敏,感觉浑身不自在,算是有强迫症,也和很多人争论过。
对于这类编程习惯有各种流派,各有利弊,欢迎各位一起探讨,退役大神、首席架构师、各主程、编程小将多多参与。
相关推荐
`System.DateTime.Now.ToString()` 是 .NET Framework 中用于格式化日期和时间的重要方法,它允许开发者根据需要自定义日期和时间的显示格式。在ASP.NET中,这个方法常用于将当前日期和时间转换为字符串,以便在网页...
ToString()和Convert.ToString()的用法区别 ToString()和Convert.ToString()是C#中两种常用的字符串转换方法,但它们之间存在一些重要的区别。在本文中,我们将深入探讨这两种方法的用法和区别,以帮助开发者更好地...
### Map.toString()后转换成Map类型的实现方法及解析 在Java编程中,有时我们需要将一个`Map`对象转换为字符串形式进行存储或传输,而在接收端又需要将该字符串重新转换回`Map`对象以便进一步处理。本篇将详细介绍...
生成GUID程序,C#源代码,System.Guid.NewGuid().ToString()全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装。在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID。 GUID...
`Environment.OSVersion.ToString`是.NET Framework提供的一条内置方法,用于检索当前运行环境的操作系统版本信息。下面我们将深入探讨这个知识点。 首先,`Environment`类是System命名空间中的一个静态类,它提供...
console.log(Object.prototype.toString.call(arr)) //[object Array] 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下: 15.2.4.2 ...
在C#编程语言中,`Convert.ToString` 和 `ToString` 都是用来将对象转换为字符串的方法,但它们在处理特定情况时有所不同,特别是在处理 `null` 值时。了解这些区别对于C#开发者,尤其是初学者,是至关重要的。 ...
浅谈ToString()和Convert.ToString()方法的区别 一、一般用法说明 ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型,也可以是...
问题的描述是这样的: 代码如下: console.log(10..toString());//10 console.log(10.toString());//SyntaxError: Unexpected token ILLEGAL 为什么前者正常,而后者报错呢。原因就是,在JavaScript中,数字后面的”....
Serilog.Exceptions是Serilog的附加用于记录Exception.ToString()中未输出的异常详细信息和自定义属性。它有什么作用? 现在,您的JSON日志将补充详细的异常信息,甚至是自定义异常属性。 这是当您从EntityFramework...
在C#编程中,`BitConverter.ToString`方法常用于将字节数组转换为表示这些字节的十六进制字符串。这个方法将每个字节转换为两个十六进制字符,并用短划线“-”分隔它们。然而,当你需要将这个格式的字符串再转换回...
为什么要用Object.prototype.toString而不是Function.prototype.toString或者其它?这是和他们的toString解释方式有关系的。下面是ECMA中对Object.prototype.toString的解释: 代码如下: Object.prototype.toString...
Convert.ToDateTime("2005-8-23").ToString ("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库 5.直接用ToString方法转换日期显示格式: DateTime.Now.ToString(...
"一个友好的改善的 Object.prototype.toString 的实现" 本文主要讨论了一个友好的改善的 Object.prototype.toString 的实现。首先,我们需要了解 Object.prototype.toString 方法的基本概念。 Object.prototype....
在编程语言如C#中,`ToString()`方法是一个非常重要的功能,用于将对象转换为其等价的字符串表示。在C#中,`ToString()`方法可以接受一个格式字符串作为参数,以控制输出的字符串格式。这个格式字符串由不同的格式...
本文的重点是Node.js中Buffer对象的toString方法,这个方法可以将Buffer对象中的二进制数据转换为指定编码的字符串。 buffer.toString()方法说明: - toString()是Buffer类的实例方法,用于将Buffer中的数据转换为...