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

网站建设调查通知黄村网站建设报价

网站建设调查通知,黄村网站建设报价,织梦高端大气网站模板,低价网站制作企业异常用于指示在运行程序时发生了错误。 此时将创建一个描述错误的异常对象#xff0c;然后使用 throw 语句或表达式引发。 然后#xff0c;运行时搜索最兼容的异常处理程序。 当存在下列一种或多种情况时#xff0c;程序员应引发异常#xff1a; 1. 方法无法完成其定义的…异常用于指示在运行程序时发生了错误。 此时将创建一个描述错误的异常对象然后使用 throw 语句或表达式引发。 然后运行时搜索最兼容的异常处理程序。 当存在下列一种或多种情况时程序员应引发异常 1. 方法无法完成其定义的功能。 例如如果一种方法的参数具有无效的值 static void CopyObject(SampleClass original) {_ original ?? throw new ArgumentException(Parameter cannot be null, nameof(original)); } 2. 根据对象的状态对某个对象进行不适当的调用。 一个示例可能是尝试写入只读文件。 在对象状态不允许操作的情况下引发 InvalidOperationException 的实例或基于此类的派生的对象。 以下代码是引发 InvalidOperationException 对象的方法示例  public class ProgramLog {FileStream logFile null!;public void OpenLog(FileInfo fileName, FileMode mode) { }public void WriteLog(){if (!logFile.CanWrite){throw new InvalidOperationException(Logfile cannot be read-only);}// Else write data to the log and return.} } 3. 方法的参数引发了异常。 在这种情况下应捕获原始异常并创建 ArgumentException 实例。 应将原始异常作为 InnerException 参数传递给 ArgumentException 的构造函数 static int GetValueFromArray(int[] array, int index) {try{return array[index];}catch (IndexOutOfRangeException e){throw new ArgumentOutOfRangeException(Parameter index is out of range., e);} } 前面的示例演示了如何使用 InnerException 属性。 这是有意简化的。 在实践中应先检查索引是否在范围内然后再使用它。 当参数成员引发在调用成员之前无法预料到的异常时可以使用此方法来包装异常。 异常包含一个名为 StackTrace 的属性。 此字符串包含当前调用堆栈上的方法的名称以及为每个方法引发异常的位置文件名和行号。 StackTrace 对象由公共语言运行时 (CLR) 从 throw 语句的位置点自动创建因此必须从堆栈跟踪的开始点引发异常。 所有异常都包含一个名为 Message 的属性。 应设置此字符串来解释发生异常的原因。 不应将安全敏感的信息放在消息文本中。 除 Message 以外ArgumentException 也包含一个名为 ParamName 的属性应将该属性设置为导致引发异常的参数的名称。 在属性资源库中ParamName 应设置为 value。 公共的受保护方法在无法完成其预期功能时将引发异常。 引发的异常类是符合错误条件的最具体的可用异常。 这些异常应编写为类功能的一部分并且原始类的派生类或更新应保留相同的行为以实现后向兼容性。 引发异常时应避免的情况 以下列表标识了引发异常时要避免的做法 不要使用异常在正常执行过程中更改程序的流。 使用异常来报告和处理错误条件只能引发异常而不能作为返回值或参数返回异常请勿有意从自己的源代码中引发 System.Exception、System.SystemException、System.NullReferenceException 或 System.IndexOutOfRangeException不要创建可在调试模式下引发但不会在发布模式下引发的异常。 若要在开发阶段确定运行时错误请改用调试断言 任务返回方法中的异常 使用 async 修饰符声明的方法在出现异常时有一些特殊的注意事项。 方法 async 中引发的异常会存储在返回的任务中直到任务即将出现时才会出现。 有关存储的异常的详细信息请参阅异步异常。 建议在输入方法的异步部分之前验证参数并引发任何相应的异常例如 ArgumentException 和 ArgumentNullException。 也就是说在开始工作之前这些验证异常应同步出现。 以下代码片段演示了一个示例其中如果引发异常ArgumentException 个异常将同步出现而 InvalidOperationException 个将存储在返回的任务中。 // Non-async, task-returning method. // Within this method (but outside of the local function), // any thrown exceptions emerge synchronously. public static TaskToast ToastBreadAsync(int slices, int toastTime) {if (slices is 1 or 4){throw new ArgumentException(You must specify between 1 and 4 slices of bread.,nameof(slices));}if (toastTime 1){throw new ArgumentException(Toast time is too short., nameof(toastTime));}return ToastBreadAsyncCore(slices, toastTime);// Local async function.// Within this function, any thrown exceptions are stored in the task.static async TaskToast ToastBreadAsyncCore(int slices, int time){for (int slice 0; slice slices; slice){Console.WriteLine(Putting a slice of bread in the toaster);}// Start toasting.await Task.Delay(time);if (time 2_000){throw new InvalidOperationException(The toaster is on fire!);}Console.WriteLine(Toast is ready!);return new Toast();} } 定义异常的类别 程序可以引发 System 命名空间中的预定义异常类(前面提到的情况除外)或通过从 Exception 派生来创建其自己的异常类。 派生类应该至少定义三个构造函数一个无参数构造函数、一个用于设置消息属性还有一个用于设置 Message 和 InnerException 属性。 例如 [Serializable] public class InvalidDepartmentException : Exception {public InvalidDepartmentException() : base() { }public InvalidDepartmentException(string message) : base(message) { }public InvalidDepartmentException(string message, Exception inner) : base(message, inner) { } } 当新属性提供的数据有助于解决异常时将新属性添加到异常类中。 如果将新属性添加到派生异常类中则应替代 ToString() 以返回添加的信息。
http://www.tj-hxxt.cn/news/224644.html

相关文章:

  • 网店运营推广中级实训系统我的企业网站怎么seo
  • php 网站cookie海外模板网站有哪些
  • 无锡网站建设工作室中学生做网站
  • 营销型网站建设 兼职wordpress 去掉作者
  • 中山专业网站制作阿里云ssl wordpress
  • 网站后台制作视频教程微信开放平台介绍
  • 北京做网站优化的科技公司贵州住房和城乡建设厅旧网站
  • 四川省城乡住房和城乡建设厅网站相亲网站开发与设计报告
  • 官网和网站的区别济宁网络
  • Wordpress网站开发收费游戏制作软件培训
  • 创意活动策划网站工作组赴哈尔滨
  • 公司网站做的比较好自己制作的网站怎么发布
  • 花生壳域名直接做网站阿里云免费建站
  • 网站开发环境包括什么seo外链怎么发
  • 网站联动商业网站设计
  • 网站怎么描述个人网页设计作品欣赏
  • 婚纱网站怎么做什么是网站开发公司电话
  • 做产地证需要备案上哪个网站产品开发
  • 政务网站建设 云南 公司外贸资讯网站
  • 中国电信新建网站备案管理系统 录完信息艺术视频手机网站可以做吗
  • 瓯海住房与城乡建设局网站罗湖商城网站设计多少钱
  • 初二怎么做网站seo网站案例
  • 淘宝客如何建设自己的网站企业服务咨询
  • 花木企业网站源码wordpress 仪表板主题
  • 网站开发的最后5个阶段网站建设依据什么法律
  • 海宁市规划建设局网站做招聘网站需要什么
  • 郑州快速建站公司仿素材网站源码
  • 上海的设计网站单位网站中文域名到期续费
  • 深圳网站推广优如何重建网站
  • 青海网页设计与网站建设网站建设创意文案