logging:在日志方法start和end中使用try-filly块是否可以接受
本文关键字:try-filly 是否 日志 方法 start end logging | 更新日期: 2023-09-27 17:57:52
考虑一种情况,其中需要记录一个包含大量返回语句的方法,
if(condition1)
{
calculation here
do log
return a
}
else if(condition2)
{
calculation here
do log
return b
}
else
{
calculation here
do log
return c
}
如果日志语句相同,那么以这种方式进行日志记录会更好吗?
try
{
if(condition1)
{
calculation here
return a
}
else if(condition2)
{
calculation here
return b
}
else
{
calculation here
return c
}
}
finally
{
do log
}
如果我们只为日志记录创建一个try-filly块,会有什么影响吗?最佳实践是什么?
为什么不像这个一样在最后返回
var returnValue
if(condition1)
{
calculation here
returnValue = a
}
else if(condition2)
{
calculation here
returnValue = b
}
else
{
calculation here
returnValue = c
}
do log
return returnValue
作为一个纯粹主义者,我认为将业务逻辑与错误处理混合在一起总是一种糟糕的做法。此外,由于这是来自象牙塔的观点,将交叉关注(日志记录)与业务逻辑混合也是一种糟糕的做法。
我的目标是。。。
if(condition1)
{
calculation here
result = a
}
else if(condition2)
{
calculation here
result = b
}
else
{
calculation here
result = c
}
log stuff
return result
让多个返回语句-->复杂地查看程序流被认为是一种糟糕的风格。(在这么小的方法中并不是一个真正的问题,但它降低了可读性)
因此,考虑在计算块中设置一个returnValue,该值将在最后返回。
这允许您在返回之前的某个点进行日志记录。