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判断。这里不便依靠抛出异常来处理。这么处理放到更方便一些。
查看全文
相关阅读:
Delphi中字符串默认以#开头。 dotNET界面
生成飞库jar手机电子小说ByC# dotNET界面
CS0016: Could not write to output file 'c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/ '拒绝访问' dotNET界面
SVN备份和还原操作特指Window下使用Visual SVN dotNET界面
生成飞库jar手机电子小说ByC#[2] dotNET界面
写了个类似按键精灵的找图类。方便大家做UI测试的时候可以用 dotNET界面
各种中间件
聊聊位运算吧
聊聊设计模式
腾讯云容器服务(TKE集群)新版本config取不到token问题
原文地址:https://www.cnblogs.com/sky266/p/960116.html
最新文章
MIME类型
SharedObject对象
Flash IDE调试
Array与Vector
AS游戏开发
AS3元数据Embed嵌入说明
SWC编译
IE7的web标准之道 Ⅱ
border:none;与border:0;的区别
使用jQuery制作滑动动画效果的层
热门文章
2009年最受欢迎jQuery插件
设计技巧典范
交互设计实用指南系列 – 我们眼中的交互设计
如何设计网页横幅
轻设计,让网站灵敏轻便的6个技巧
Tab(选项卡)的产品设计原则及应用 [4]
一句很NB的代码
今天做window 服务遇到个问题。 dotNET界面
WebBrowser的Cookie与HttpRequest交互 dotNET界面
在64位机器上使用反射要注意下编译的dll是否是X86的 dotNET界面
Copyright © 2011-2022 走看看