Warning: mkdir(): No such file or directory in /www/wwwroot/news.ynwlzc.cn/m/index.php on line 44

Warning: mkdir(): No such file or directory in /www/wwwroot/news.ynwlzc.cn/m/index.php on line 48

Warning: file_put_contents(/www/wwwroot/news.ynwlzc.cn/log_userwlzc/2026/05/13/216.73.217.125_visit.csv): failed to open stream: No such file or directory in /www/wwwroot/news.ynwlzc.cn/m/index.php on line 60

Warning: file_put_contents(/www/wwwroot/news.ynwlzc.cn/log_userwlzc/2026/05/13/216.73.217.1252026_05_13_m_loginvisit.csv): failed to open stream: No such file or directory in /www/wwwroot/news.ynwlzc.cn/m/index.php on line 96
 精简自己 20% 的代码--移动互联【未来之窗旗下】 精简自己 20% 的代码
返回 首页

精简自己 20% 的代码

2016-05-11  未来之窗软件服务

一:发现问题


先来说如何重构业务层的try{}catch{}finally{}代码块,我看过很多代码,异常处理这一块大致分为两种情况,一种是每个方法都大量的充斥着try{}catch{}finally{ },这种方式的编程已经考虑到了异常处理,还有一种就是没有try{ }catch{ }finally{ }的代码,因为根本就没有考虑代码的异常处理。


每当我看到这样的代码,我都很忧伤。从程序的健壮性来看第一种还是要比第二种情况好,至少在编程意识中,随时想到了异常情况,有一种基本的编程思想。比如:一个业务单据的多表插入,关联修改,虚拟删除等都是一些基本的操作,但是又是比较容易引起错误的操作,在这些方法上都会加上try{ }catch{ }finally{}对代码进行有效的防错处理。早期的代码是这样的。


publicBooleanSave(AccountModel accountData)

{

    Booleanresult = false;

    try

    {

        //TODO ...

        result = true;

    }

    catch

    {

 

    }

    finally

    {

            

    }

    returnresult;

}

 

publicBooleanEdit(AccountModel accountData)

{

    Booleanresult = false;

    try

    {

        //TODO ...

        result = true;

    }

    catch

    {

 

    }

    finally

    {

 

    }

    returnresult;

}

 

publicBooleanVirDelete(AccountModel accountData)

{

    Booleanresult = false;

    try

    {

        //TODO ...

        result = true;

    }

    catch

    {

 

    }

    finally

    {

 

    }

    returnresult;

}


仅仅定义了添加,修改,删除几个空方法,就写了三四十行代码,如果业务稍微复杂些,异常处理的代码很快就会突破百行大关。虽然复制,粘贴try{}catch{}finally{}很好使,但是业务逻辑代码大量充斥着这样的try{}catch{}finally{}代码,确实显得做事不够利落。


二:解决问题


那怎样来解决这件棘手的事呢,首先定义一个公用的try{}catch{}finally{},如下如示:


publicclassProcess

{

    

本站推荐

猜你喜欢

相关文章

Android中Webview

Android中Webview

Android中Webview

JavaScript 获取url参数 替换url参数

JavaScript 获取url参数 替换url参数

JavaScript 获取url参数 替换url参数

SQL Server 2000 非1433端口的客户端连接方法

SQL Server 2000 非1433端口的客户端连接方法

SQL Server 2000 非1433端口的客户端连接方法

专家教你如何通过微信号知道对方微信的二维码?

专家教你如何通过微信号知道对方微信的二维码?

专家教你如何通过微信号知道对方微信的二维码?

FastReport 中预览窗体设置按钮显示

FastReport 中预览窗体设置按钮显示

FastReport 中预览窗体设置按钮显示

win10系统自带浏览器影响数字证书验证

win10系统自带浏览器影响数字证书验证

win10系统自带浏览器影响数字证书验证

不懂编程语言的运维人员还能走多远?

不懂编程语言的运维人员还能走多远?

不懂编程语言的运维人员还能走多远?

安装CDR X5时找不到ShellExt.msi

安装CDR X5时找不到ShellExt.msi

安装CDR X5时找不到ShellExt.msi

有图有对比!125个提升网页可用性的优化小技巧(四)

有图有对比!125个提升网页可用性的优化小技巧(四)

有图有对比!125个提升网页可用性的优化小技巧(四)

精简自己 20% 的代码

精简自己 20% 的代码

精简自己 20% 的代码

Mysql基于FEDERATED存储引擎的远程表使用

Mysql基于FEDERATED存储引擎的远程表使用

Mysql基于FEDERATED存储引擎的远程表使用

socket实现手机连接网络打印机打印pos单

socket实现手机连接网络打印机打印pos单

socket实现手机连接网络打印机打印pos单

技术支持1

技术支持1

photoshop渐变中如何渐变成透明色

photoshop渐变中如何渐变成透明色

photoshop渐变中如何渐变成透明色