当前位置: 首页 > news >正文

南昌网站建设方案维护霸州网站设计

南昌网站建设方案维护,霸州网站设计,深圳集团网站开发,python 创建wordpress在 C# 中,程序中的运行时错误通过使用一种称为“异常”的机制在程序中传播。 异常由遇到错误的代码引发,由能够更正错误的代码捕捉。 异常可由 .NET 运行时或由程序中的代码引发。 一旦引发了一个异常,此异常会在调用堆栈中传播,直…

在 C# 中,程序中的运行时错误通过使用一种称为“异常”的机制在程序中传播。 异常由遇到错误的代码引发,由能够更正错误的代码捕捉。 异常可由 .NET 运行时或由程序中的代码引发。 一旦引发了一个异常,此异常会在调用堆栈中传播,直到找到针对它的 catch 语句。 未捕获的异常由系统提供的通用异常处理程序处理,该处理程序会显示一个对话框。

异常由从 Exception 派生的类表示。 此类标识异常的类型,并包含详细描述异常的属性。 引发异常涉及创建异常派生类的实例,配置异常的属性(可选),然后使用 throw 关键字引发该对象。 例如:

class CustomException : Exception
{public CustomException(string message){}
}
private static void TestThrow()
{throw new CustomException("Custom exception in TestThrow()");
}

引发异常后,运行时将检查当前语句,以确定它是否在 try 块内。 如果在,则将检查与 try 块关联的所有 catch 块,以确定它们是否可以捕获该异常。 Catch 块通常会指定异常类型;如果该 catch 块的类型与异常或异常的基类的类型相同,则该 catch 块可处理该方法。 例如:

try
{TestThrow();
}
catch (CustomException ex)
{System.Console.WriteLine(ex.ToString());
}

如果引发异常的语句不在 try 块内或者包含该语句的 try 块没有匹配的 catch 块,则运行时将检查调用方法中是否有 try 语句和 catch 块。 运行时将继续调用堆栈,搜索兼容的 catch 块。 在找到并执行 catch 块之后,控制权将传递给 catch 块之后的下一个语句。

一个 try 语句可包含多个 catch 块。 将执行第一个能够处理该异常的 catch 语句;将忽略任何后续的 catch 语句,即使它们是兼容的也是如此。 按从最具有针对性(或派生程度最高)到最不具有针对性的顺序对 catch 块排列。 例如:

using System;
using System.IO;namespace Exceptions
{public class CatchOrder{public static void Main(){try{using (var sw = new StreamWriter("./test.txt")){sw.WriteLine("Hello");}}// Put the more specific exceptions first.catch (DirectoryNotFoundException ex){Console.WriteLine(ex);}catch (FileNotFoundException ex){Console.WriteLine(ex);}// Put the least specific exception last.catch (IOException ex){Console.WriteLine(ex);}Console.WriteLine("Done");}}
}

执行 catch 块之前,运行时会检查 finally 块。 Finally 块使程序员可以清除中止的 try 块可能遗留下的任何模糊状态,或者释放任何外部资源(例如图形句柄、数据库连接或文件流),而无需等待垃圾回收器在运行时完成这些对象。 例如:

static void TestFinally()
{FileStream? file = null;//Change the path to something that works on your machine.FileInfo fileInfo = new System.IO.FileInfo("./file.txt");try{file = fileInfo.OpenWrite();file.WriteByte(0xF);}finally{// Closing the file allows you to reopen it immediately - otherwise IOException is thrown.file?.Close();}try{file = fileInfo.OpenWrite();Console.WriteLine("OpenWrite() succeeded");}catch (IOException){Console.WriteLine("OpenWrite() failed");}
}

如果 WriteByte() 引发了异常并且未调用 file.Close(),则第二个 try 块中尝试重新打开文件的代码将会失败,并且文件将保持锁定状态。 由于即使引发异常也会执行 finally 块,前一示例中的 finally 块可使文件正确关闭,从而有助于避免错误。

如果引发异常之后没有在调用堆栈上找到兼容的 catch 块,则会出现以下三种情况之一:

  • 如果异常存在于终结器内,将中止终结器,并调用基类终结器(如果有);
  • 如果调用堆栈包含静态构造函数或静态字段初始值设定项,将引发 TypeInitializationException,同时将原始异常分配给新异常的 InnerException 属性;
  • 如果到达线程的开头,则终止线程;
http://www.yayakq.cn/news/786371/

相关文章:

  • 一般网站建设企业美化网站代码
  • 织梦网站程序安装教程网站模块源码
  • 高端网站定制建设公司哪家好浏览器什么网站都能打开的
  • 专门做简历的网站软件品牌推广公司
  • 网站优化推广软件做餐饮连锁在哪个网站看
  • 潍坊知名网站建设公司微网站怎么做百度关键词排名
  • 社交网站开发项目计划报告企业网站建设哪家最好
  • 网站的规划与建设案例分析网站建设大作业有代码
  • 东莞设计制作网站制作360网站图标怎么做
  • 中国互联网站建设中心建站网上在线注册公司
  • 鞍山58二手车太原seo关键词排名优化
  • 怎样在网站图片做超级链接国家网站域名
  • 邢台网站推广多少钱如何创建网站的快捷方式
  • 网站页脚优化怎么做如何查看网站是否被百度收录
  • 网站推广怎么做asp网站打开
  • 58网站怎么样做效果会更好搜索app下载
  • php除了做网站三合一网站建设官网
  • 专业做网站企业网页设计教程电子书
  • 设计公司网站欣赏建网站培训机构
  • 网站标题改不了怎样做品牌推广网站
  • 龙岩市住房和城乡建设局网站做h5哪个网站好用
  • 网站上的动态效果怎么做的四川省红鱼洞水库建设管理网站
  • 网站培训公司浙江怎么制作网站
  • 宝安区住房和建设局网站软考高项彻底没用了
  • 网站建设目标及需求网站建设源码下载
  • 在线正能量网站地址链接免费四川省建筑公司
  • 做房地产需要做网站吗衡水网站建设找谁
  • 建设企业网站的原因网站挂黑链工具
  • 嘉兴市建设官方网站网站建设翻译英文是什么
  • 顺德网站建设多少钱临高网站建设