网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
写给转向C#的C++程序员的C# FAQ
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
他你可能想要复用的标准异常还有IndexOutOfRangeException和ArithmeticException等等。 4.5 System.Exception类还有什么有用的特性吗? 是的,那就是StackTrace属性。这个属性提供了一个调用栈,其中记录了异常最初被抛出的位置。例如,下列代码:
using System;
 
class CApp 
          public static void Main() 
          { 
                    try 
                    { 
                          f(); 
                    } 
                    catch( Exception e ) 
                    { 
                          Console.WriteLine( "System.Exception stack trace = \n{0}", e.StackTrace ); 
                    }
          } 
 
          static void f() 
          { 
                    throw new Exception( "f went pear-shaped" ); 
          } 
}
会产生如下输出:
System.Exception stack trace = 
          at CApp.f() 
          at CApp.Main()
但是,请注意:这种调用栈跟踪能力只有在调试版本中才会有。发布版本会把某些方法调用优化掉,这也就是说,调用栈将与你所想象的形式有所不同。4.6 我应该在何时抛出异常? 这是一个颇有争议的话题,而且也部分取决于个人的喜好。不过,大多数人都接受这样一个观点:只有在出现“预料之外”的错误时,才应该抛出异常。如何判断一个错误是预料之中的还是预料之外的呢?各人的判断不同。这里有一个简单的例子:因为seek指针到达文件末尾而引起的文件读取错误应该属于预料之中的错误,而在堆上分配内存失败则应该属于预料之外的错误。 4.7 C#有throws子句吗? 没有。和Java不同,C#并不要求(甚至并不允许)开发者指定方法可以抛出的异常。 5. 运行时类型信息 5.1 如何在运行时检查对象的类型? 你可以使用is关键字。例如:
using System; 
 
class CApp
{
          public static void Main()
          { 
                    string s = "fred"; 
                    long i = 10; 
 
                    Console.WriteLine( "{0} is {1}an integer", s, (IsInteger(s) ? "" : "not ") ); 
                    Console.WriteLine( "{0} is {1}an integer", i, (IsInteger(i) ? "" : "not ") ); 
          }
          
          static bool IsInteger( object obj )
          { 
                    if( obj is int || obj is long )
                          return true; 
                    else 
                          return false;
          }
} 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号