CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

return 放在exception的什么地方?

楼主BlueMountain_1980(蓝色山峰)2006-03-08 09:00:39 在 .NET技术 / C# 提问

用C#很长时间了,刚刚开始注意的问题。  
   
  private   static   MyClass   TestA()  
                  {  
                          MyClass   myClass   =   "TestA";  
                          try  
                          {                                  
                                  throw   new   Exception();                                  
                          }  
                          catch  
                          {  
                          }  
                          return   MyClass;                          
                  }  
  //   TestA没有问题      
  private   static   string   TestB()  
                  {  
                           
                          try  
                          {  
                                  string   str   =   "TestB";  
                                  //throw   new   Exception();    
                                  return   str;                                  
                          }  
                          catch  
                          {  
                          }                                                
                  }  
  //   TestB编译不通过     错误信息   并非所有的代码  
   
   
  private   static   string   TestC()  
                  {  
                           
                          try  
                          {  
                                  string   str   =   "TestC";  
                                  //throw   new   Exception();    
                                  return   str;                                  
                          }  
                          catch(   Exception   ex   )  
                          {  
                                  throw   ex;  
                          }                                                
                  }  
  //TestC编译通过  
  问题点数:100、回复次数:8Top

1 楼IntelliSense(Sense)回复于 2006-03-08 09:06:55 得分 5

catch  
  {  
  return   null;  
  }Top

2 楼wf5360308(冷月孤峰)回复于 2006-03-08 09:08:56 得分 10

private   static   string   TestB()  
                  {                          
                          try  
                          {  
                                  string   str   =   "TestB";  
                                  //throw   new   Exception();                                                                  
                          }  
                          catch  
                          {  
    return   Err_str;  
                          }          
    return   str;                                        
                  }Top

3 楼BlueMountain_1980(蓝色山峰)回复于 2006-03-08 09:10:41 得分 0

private   static   string   TestB()  
                  {  
                           
                          try  
                          {  
                                  string   str   =   "TestB";  
                                  //throw   new   Exception();    
                                  return   str;                                  
                          }  
                          catch  
                          {  
                                  return   null;  
                          }                                                
                  }  
  //IntelliSense(Sense)     也就是说当执行到catch的时候就没有return   所以编译器才报错??Top

4 楼dingzhaofeng(Alading)回复于 2006-03-08 09:18:01 得分 5

异常中ingTop

5 楼lovvver(ElephantTalk.Bright)回复于 2006-03-08 09:18:14 得分 10

看你的要求了,如果出现异常,抛出,而不返回的话,  
  private   static   string   TestB()  
                  {  
                           
                          try  
                          {  
                                  string   str   =   "TestB";  
                                  ...                          
                          }  
                          catch(Exception   ex)  
                          {  
                                  throw   ex;  
                          }        
                          return   str;                                          
                  }  
  如果你想出现异常则返回null的话:  
  private   static   string   TestB()  
                  {  
                           
                          try  
                          {  
                                  string   str   =   "TestB";  
                                  //throw   new   Exception();    
                                ....  
                          }  
                          catch  
                          {  
                                  return   null;  
                          }    
                          return   str;                                                
                  }Top

6 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-03-08 09:41:32 得分 10

应该是这样的吧:  
   
  private   static   string   TestB()  
                  {  
                           
                          try  
                          {  
                                  string   str   =   "TestB";  
                                  throw   new   Exception();   //因为这里抛出异常,被下面的catch捕获,下面的代码跳过  
                                  return   str;//这里应该有个警告,检测到无法访问的代码  
                          }  
                          catch//这里捕获了异常后,没有返回值,也没有再抛出异常,所以报错。  
                          {  
                          }                                                
                  }Top

7 楼yuanarea(Sail before)回复于 2006-03-08 10:10:48 得分 10

private   static   string   TestB()  
                  {  
                           
                          try  
                          {  
                                  string   str   =   "TestB";  
                                  //throw   new   Exception();    
                                  return   str;                                  
                          }  
                          catch{  
                                  //错误处理  
                          }  
                          finally  
                          {  
                                  return   null;  
                          }                              
                  }Top

8 楼sogno(一觞一咏)回复于 2006-03-08 10:36:51 得分 50

返回和抛出异常都是方法的出口点,区别只是前者是正常出口点,后者是异常出口点。  
  Not   all   code   paths   return   a   value意味着方法中至少有一条路径不包括这样的出口点,而try{}   catch{}就是一种分支路径Top

相关问题

  • tomcat下,将Bean放在什么地方?
  • winsock.pbl和webpb.pbl放在什么地方
  • Bean文件放在什么地方?
  • api 函数放在什么地方
  • Bean的应该放在什么地方?
  • 不用数据库,把数据放在什么地方最好?
  • tomcat的自带例子的bean放在什么地方?
  • count后数值放在什么地方,如何调用?
  • 请问xp的管理员密码存放在什么地方?
  • 请问IE的临时文件都放在什么地方

关键词

  • 代码
  • null
  • testb
  • 抛出
  • 异常
  • 出口点
  • testc
  • catch
  • testa
  • myclass

得分解答快速导航

  • 帖主:BlueMountain_1980
  • IntelliSense
  • wf5360308
  • dingzhaofeng
  • lovvver
  • Ivony
  • yuanarea
  • sogno

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo