zoukankan
html css js c++ java
编程规范,try catch 和返回值的问题
自从理解了try catch机制后就有意无意的注意一下优秀的开源软件是如何处理异常捕获和返回值的问题的
下面这段是community server 上的一段代码。
想研究一下他的异常处理机制
Code
public
static
bool
SendMessage(MailMessage message)
{
try
{
CSContext context
=
CSContext.Current;
//
Replace any LF characters with CR LF
message.Body
=
message.Body.Replace(
"
\r
"
,
string
.Empty);
message.Body
=
message.Body.Replace(
"
\n
"
,
"
\r\n
"
);
//
Set the encoding
message.SubjectEncoding
=
Encoding.GetEncoding(context.SiteSettings.EmailSubjectEncoding);
message.BodyEncoding
=
Encoding.GetEncoding(context.SiteSettings.EmailEncoding);
//
Set the content base
message.Headers[
"
Content-Base
"
]
=
context.SiteSettings.SiteUrl;
message.Headers[
"
Content-Location
"
]
=
context.SiteSettings.SiteUrl;
//
Send it
GetSmtpClient().Send(message);
return
true
;
}
catch
(Exception e)
{
Debug.WriteLine(e.Message
+
"
:
"
+
(e.InnerException
!=
null
?
e.InnerException.Message : String.Empty));
CSException fe;
if
(message
!=
null
&&
message.To
!=
null
)
fe
=
new
CSException(CSExceptionType.EmailUnableToSend,
"
SendMessage Failed To:
"
+
message.To, (e.InnerException
!=
null
?
e.InnerException : e));
else
fe
=
new
CSException(CSExceptionType.EmailUnableToSend,
"
SendMessage Failed Either Message or To was null:
"
, (e.InnerException
!=
null
?
e.InnerException : e));
fe.Log(CSContext.Current.SiteSettings.SettingsID);
return
false
;
}
}
这里的处理比较特殊再try catch内部返回bool型的值。跟踪了一下这个方法的调用 发现使用这个方法的地方存在bool判断。这里不便依靠抛出异常来处理。这么处理放到更方便一些。
查看全文
相关阅读:
MySQL锁
MySQL索引
MySQL基础
删除文件时提示:一个意外错误使您无法复制该文件夹0x80070570
教育部认可的44项全国学科竞赛名单
打开dnsmasq log
使用gdb调试user程序
ipv6获取地址
vlc产生组播流
xxl-job搭建、部署、SpringBoot集成xxl-job
原文地址:https://www.cnblogs.com/sky266/p/960116.html
最新文章
阿里云Docker镜像加速
Docker安装(yum方式 centos7)
K8S代理
基于CentOS 7的SFTP配置
Strace 追踪系统调用
vim快速操作
lsyncd + rsync 实时同步搭建
SFTP服务器搭建
申请Letencrypt的免费证书文件-nginx
阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件
热门文章
TBC 2.4.3 Mac客户端
树莓派respbian系统安装netcore3.0 sdk
长时间请求 报 Thread was being aborted 异常
Windows环境下安装Redis
Mac环境下安装Redis
【Intellij IDEA】eclipse项目导入
Python面试题爬虫篇(附答案)
Python面试题Web篇(附答案)
Python面试题网编、并发、MySQ部分(附答案)
Python面试题基础部分(附答案)
Copyright © 2011-2022 走看看