C# try catch 中使用return 的问题

今天在使用trycatch的时候发现一个很奇怪的问题甚是不解忘高人指点。分数不多,请见谅。在此先行谢过。1.在一个static方法中代码如下:注意return在try里面... 今天在使用try catch的时候发现一个很奇怪的问题 甚是不解 忘高人指点。
分数不多,请见谅。 在此先行谢过。

1. 在一个static 方法中 代码如下:注意 return在try里面。 此方法没有error。
public static bool isValid()
{
try
{
...........................
return isvalid;
}
catch (Exception ex)
{
throw ex;
}
}
2. 在一个winform 的cs 文件中, 使用了以上模式, 但是报错, 并需要给一个返回值。 改成以下形式才不会报错。注意 return在try catch的外面。
private DataTable saveUser_common()
{
DataTable dt = null;

try
{

dt = .....

}
catch (Exception ex)
{
MessageBox.Show(CommonMethod.ErrorFormat(ex));
}

return dt;
}

请指点为什么会这样呢? 难道是 public static 方法和private 方法的缘故吗 ? 如果真是这样, 又有何依据呢 ?
展开
 我来答
actonst
2012-03-26 · TA获得超过1.8万个赞
知道大有可为答主
回答量:8184
采纳率:80%
帮助的人:5270万
展开全部
这跟static 和private没关系。
try和catch都分别要返回,不然就写在try catch外面、最后。

你的两个catch写的不一样啊。。。
第一个catch里面,throw 就是返回了,所以不需要再写return。throw和return是一个功效,就是返回调用此方法的代码。
第二个catch里面没有返回值
Jarhf
2012-03-26 · TA获得超过1862个赞
知道小有建树答主
回答量:1736
采纳率:25%
帮助的人:1035万
展开全部
有 throw 了,程序执行到此就要抛出异常到函数外面了,等效于return...
你可以再 throw后面再加一些语句, VS会警告你,检测到无法访问的代码!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百头猪度
2012-03-26 · TA获得超过121个赞
知道小有建树答主
回答量:128
采纳率:100%
帮助的人:64.6万
展开全部
检查一下,可能不是每条分支都有返回值。
某个分支漏掉返回值了,所以你在最后补上就不出错了。
你可以一段一段的试,看看是哪里漏掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-26
展开全部
返回一个表示错误的值,比如-1,自己明白就行了

对啊,在WriteLine()之前加一个判断,
如果是表示错误的值,就不要写了啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e41942f98
2012-03-27
知道答主
回答量:27
采纳率:0%
帮助的人:7.3万
展开全部
actonst 说的对 你下面一个catch里是用了messagebox.show
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式