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判断。这里不便依靠抛出异常来处理。这么处理放到更方便一些。
查看全文
相关阅读:
[JLOI2011]飞行路线 不同的算法,不同的悲伤
洛谷 [USACO17OPEN]Bovine Genomics G奶牛基因组(金) ———— 1道骗人的二分+trie树(其实是差分算法)
P3203 [HNOI2010]弹飞绵羊 —— 懒标记?分块?
tarjan 题目汇总(含解析)
P1262 间谍网络 (tarjan缩点 水过去)
#1117. 编码 ( 字典树版 ) 题解分析
一道并查集的(坑)题:关闭农场closing the farm
四重解法---P1047 校门外的树
一道搜索题【2013 noip提高组 DAY2 t3】华容道
●BZOJ 1499 [NOI2005]瑰丽华尔兹
原文地址:https://www.cnblogs.com/sky266/p/960116.html
最新文章
Python虚拟机类机制之自定义class(四)
Python虚拟机类机制之descriptor(三)
Python虚拟机类机制之填充tp_dict(二)
Python虚拟机类机制之对象模型(一)
TCP/IP网络编程之地址族与数据序列
TCP/IP网络编程之套接字类型与协议设置
TCP/IP网络编程之网络编程和套接字
Python虚拟机函数机制之闭包和装饰器(七)
Python虚拟机函数机制之扩展位置参数和扩展键参数(六)
Python虚拟机函数机制之位置参数的默认值(五)
热门文章
Linux字符集
linux基础命令:head和tail
Linux基础命令:rm
Linux基础命令:mv
linux基础命令:cp
linux基础命令:cat和echo
linux基础命令:vim
linux基础命令:cd
linux基础命令: mkdir和touch
linux基础命令:ls
Copyright © 2011-2022 走看看