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

网站建设与管理期中考做微信网站价格

网站建设与管理期中考,做微信网站价格,域名除了做网站还能做什么,目前网站开发怎么兼顾手机序号系列文章6【C#基础】C# 常用语句讲解7【C#基础】C# 常用数据结构8【C#基础】C# 面向对象编程文章目录前言1#xff0c;异常的概念2#xff0c;处理异常3#xff0c;自定义异常4#xff0c;编译器异常结语前言 #x1f337;大家好#xff0c;我是writer桑#xff0c;…序号系列文章6【C#基础】C# 常用语句讲解7【C#基础】C# 常用数据结构8【C#基础】C# 面向对象编程文章目录前言1异常的概念2处理异常3自定义异常4编译器异常结语前言 大家好我是writer桑前面一章已经学习了 C# 中面向对象编程的知识点那本章就开始学习 C# 程序中的异常处理操作。为了更好的处理在编程过程中遇到的异常问题笔者建议大家多实践不断从实践中总结经验。 1异常的概念 异常指的是程序运行过程中发生的特殊响应通常是由外部问题如硬件、输入错误所导致的。 在 C# 等面向对象的编程语言中异常也属于对象。 C# 语言的异常处理功能处理在程序运行期间发生的任何意外或异常情况。异常处理提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的try、catch、finally 和 throw。 示例如下 public class ExceptionTest // 异常测试 {static double SafeDivision(double x, double y){if (y 0)throw new DivideByZeroException(); return x / y;}public static void Main(){//用于测试的输入。更改值以查看//异常处理行为double a 98, b 0;double result;try{result SafeDivision(a, b);Console.WriteLine({0} 除以 {1} {2}, a, b, result);}catch (DivideByZeroException){Console.WriteLine(尝试除以0错误。);}} } try、catch、finally 和 throw 关键字的简述 try 关键字声明了一个检查特定的异常的代码块后跟一个或多个 catch 块。catch 关键字需要和 try 关键字搭配表示捕获指定的异常类型。finally 关键字声明一个块来表示执行语句而且不管程序是否抛出错误都会执行。finally 代码块适合用来释放资源。异常都是使用 throw 关键字创建而成。当需要抛出一个异常时可以用 throw 关键字。 2处理异常 在 C# 中程序运行时的错误通过一种称为异常的机制在程序中传播。异常从错误的代码引发由能够更正错误的代码捕作。C# 提供了内置的 try-catch、try-finally 和 try-catch-finally 的异常处理语句可以使用这些语句来完成对异常发生的响应。 未能捕获的异常由系统提供的通用异常处理程序处理该处理程序会显示一个对话框和错误信息。 示例如下 // try-catch 语句示例 public class TrycatchTest {static void ProcessString(string s){if (s null){throw new ArgumentNullException(paramName: nameof(s), message: Parameter cant be null);}}public static void Main(){try{string s null;ProcessString(s);}// 最具体的异常 catch (ArgumentNullException e){Console.WriteLine({0} First exception caught., e);}// 至少明确的异常 catch (Exception e){Console.WriteLine({0} Second exception caught., e);}} }/*输出System.ArgumentNullException: Parameter cant be null (Parameter s) */try-catch 语句包含一个后接一个或多个 catch 子句的 try 块这些子句指定不同异常的处理程序。catch 块可以指定要捕获的异常的类型该类型规范称为异常筛选器。注意不建议用 Exception 作为异常筛选器除非知道如何处理 try 块中发生的所有异常或者使用 throw 语句。异常发生时公共语言运行时CLR查找处理此异常的 catch 语句。如果当前方法不包含此类的 catch 块则 CLR 会查找类的类依次类推直到找到匹配的 catch 块。如果未找到任何 catch 块 则 CLR 会显示一条未处理的异常信息并终止程序。注意 catch 块的顺序程序在引发异常之后只要找到兼容的 catch 块就会响应。所以尽量按从最具有针对性或派生程度最高到最不具有针对性的顺序对 catch 块排列让程序更高的可读性和方便调试。 // try-finally 语句的示例 public class TryfinallyTest {public static void Main(){int i 123;string s Some string;object obj s;try{// 无效的转换; Obj包含字符串而不是数字类型。i (int)obj;// 不会运行下面的语句。Console.WriteLine(WriteLine at the end of the try block.);}finally{Console.WriteLine(\nExecution of the finally block after an unhandled\n error depends on how the exception unwind operation is triggered.);Console.WriteLine(i {0}, i);}}// 输出:// Unhandled exception.System.InvalidCastException:// Unable to cast object of type System.String to type System.Int32. // Execution of the finally block after an unhandled// error depends on how the exception unwind operation is triggered.// i 123 }finally 常用于关闭打开的资源如执行文件的关闭操作或者用于发布资源如文件流、数据库连接和图形句柄而无需等待运行时中的垃圾回收器来完成对象。无论 try 块内的代码是否发生异常或者 catch 块有没有执行finally 块内的执行语句都会执行。除非程序意外终止例如 InvalidProgramException 错误否则 finally 语句都会执行。 如果希望 finally 块必须执行则可以加入 catch 块或者捕获堆栈上方的 try 块引发的异常。 // try-catch-finally 语句的示例 public class TrycatchfinallyTest {void ReadFile(int index){// 要运行此代码请替换本地机器上的有效路径 string path c:\users\public\test.txt;System.IO.StreamReader file new System.IO.StreamReader(path);char[] buffer new char[10];try{file.ReadBlock(buffer, index, buffer.Length);}catch (System.IO.IOException e){Console.WriteLine(Error reading from {0}. Message {1}, path, e.Message);}finally{if (file ! null){file.Close();}}} } try-catch-finally 语句相当于整合了 try-catch 和 try-finally 语句的功能。catch 和 finally 块常见的用法是获得并使用 try 块中的资源并处理 catch 块中的异常情况以及释放 finally 块中的资源。 一些补充的内容 注意在 try 块内初始化的变量只能在 try 这个代码块内使用。否则在未对变量初始化之前引用变量会出现异常。例如在下面的代码示例中变量 n 在 try 块内部初始化尝试在 WriteLine(n) 语句的 try 块外部使用此变量将生成编译器错误。 示例如下 using System; public class Program {static void Main(){int n;try{// 不要在这里初始化这个变量。 n 123;}catch{}// Error: Use of unassigned local variable n.Console.WriteLine(n);} }如果使用 catch 块时想对异常进一步筛选时可以在 catch 子句的基础上使用 when 关键字加一个布尔表达式来声明。 如果异常筛选器返回 false 则继续搜索处理程序。 示例如下 // 表示匹配变量 e 的 ParamName 属性等于字符串 ... catch (ArgumentException e) when (e.ParamName …) {// recover from exception }3自定义异常 除了 C# 内置的异常之外也可以自定义异常然后用 throw 关键字抛出。用户自定义的异常类派生自 ApplicationException 或 Exception 类。 示例如下 using System;class TestProgram {static void Main(string[] args){Program temp new Program();try{temp.showTemp();}catch (DivideByZeroException e){Console.WriteLine(DivideByZeroException: {0}, e.Message);}Console.ReadKey();} }public class DivideByZeroException : ApplicationException {public DivideByZeroException(string? message) : base(message){} }public class Program {int number 0;public void showTemp(){if (number 0){throw (new DivideByZeroException(Zero Program found));}else{Console.WriteLine(Program: {0}, number);}} }当有以下情况时开发者应引发异常 当方法无法执行自定义的功能时例如方法的参数是无效的值但是程序没有处理。一个对象执行了不允许的操作例如对一个只读文件进行写入文本。方法成员出现异常例如说对数组元素的获取超出索引范围。 引发异常时应避免的做法 使用异常的同时不要在正常执行过程中改变程序的执行流应使用异常来报告和处理错误条件。只能用 throw 关键字抛出异常而不能作为返回值或参数返回异常。自定义异常应该保证兼容性不能创建在调式模式抛出但不会在发布模式下抛出的异常。请勿有意从自己的源代码中引发 System.Exception、System.SystemException、System.NullReferenceException 或 System.IndexOutOfRangeException。 4编译器异常 当基础操作失败时.NET 运行时会自动引发一些异常。下表展示这些异常及其错误条件 异常错误条件ArithmeticException算术运算期间出现的异常的基类例如 DivideByZeroException除零异常和OverflowException溢出异常。ArrayTypeMismatchException由于元素的实际类型与数组的实际类型不兼容而导致数组无法存储给定元素时引发。DivideByZeroException尝试将整数值除以零时引发。IndexOutOfRangeException索引小于零或超出数组边界时尝试对数组编制索引时引发。InvalidCastException从基类型显式转换为接口或派生类型在运行时失败时引发。NullReferenceException尝试引用值为 null 的对象时引发。OutOfMemoryException尝试使用新运算符分配内存失败时引发。 此异常表示可用于公共语言运行时的内存已用尽。OverflowExceptionchecked 上下文中的算术运算溢出时引发。StackOverflowException执行堆栈由于有过多挂起的方法调用而用尽时引发通常表示非常深的递归或无限递归。TypeInitializationException静态构造函数引发异常并且没有兼容的 catch 子句来捕获异常时引发。结语 以上就是 C# 异常处理操作的介绍啦希望能够对大家有所帮助。望大家多多支持你们的支持就是笔者创作最大的动力
http://www.hkea.cn/news/14314165/

相关文章:

  • 网站做相片wordpress与phpmyadmin
  • 嘉兴网站排名优化报wordpress怎样上传
  • 研发地网站建设动漫做a视频网站有哪些
  • 家居企业网站建设策划定制公众号需要多少钱
  • 瀑布流网站源码下载郑州商务网站建设
  • 网站推广策划书的特点有哪些与网站建设关系密切的知识点
  • 天门网站建设Wordpress变装
  • 怎么做消费信贷网站动漫制作专业正规吗
  • 杭州网站程序开发公司在线广告设计与制作
  • 免费网站制造怎样搭建网站
  • 临汾万词霸屏网站建设免费咨询wordpress 投票功能
  • 谷歌seo网站推广怎么做优化学生做的网站成品
  • 做h5免费的网站有天元建设集团有限公司2021年产值
  • 网站排名与什么有关系用凡科做网站好吗
  • 百度站长平台登录搜索引擎推广的优势
  • 郑州企业网站如何建设网站开发后期要解决的问题
  • 社交网站制作怎样提高网站的权重
  • 找建筑类工作哪个网站好电销系统多少钱一套
  • 商城网站项目策划书二级网站建设要求
  • 长春网站建设索q479185700免费咨询律师电话12345
  • 网站的用户体验主要有那些类型discuz建站教程
  • seo软件安卓版张家港网站设计优化
  • 长沙市制作网站模板网站 优帮云
  • seo批量建站方法建网站买什么主机
  • 代表网站开发的logo网站建设合同报价
  • 天猫网站什么时候建设网站导航字体
  • 网站建设的收获公司简介模板怎么做
  • 重庆网站的建设成都网站设计公
  • 网站项目开发流程有哪七步脱贫地区农副产品网络销售平台
  • 网站建设期间怎么关闭网站给公司创建网站