C#编程-描述异常

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

描述异常

异常是在程序执行期间出现的错误。异常情况发生在运算不能正常完成的时候。当程序中出现异常是,系统会抛出错误。错误通过异常处理过程被处理。

例如,System.IO.IOException异常在试图访问非法流对象时抛出。同样,如果分母是0,整数除法运算抛出System.DivideByZeroException异常。

不论何时发生错误,运行时创建一个异常对象,并且将它发送到发生异常的程序。这个操作被称为抛出异常。异常对象包含关于错误类型的信息。

所有的异常都派生自System.Expection类,它是所有异常的父类。


错误的类型

在代码中可能发生的错误有三种类型。它们是:

  1. 语法错误
  2. 运行时错误
  3. 逻辑错误

语法错误

语法错误发生在编译器无法编译代码的时候。这样的错误可以发生在没有适当构造语句、关键字拼写错误或忽略标点的时候。在编译时,应用程序中的所有语句互相连接以产生一个可执行的单元。

运行时错误

运行时错误发生在应用程序试图完成一个运行时不允许的运算时。这样错误的示例有除数为零。运行时错误也被称为异常。所有的异常都在类的预定义集中被定义。

逻辑错误

逻辑错误发生在应用程序编译和运行正常单没有产生预期结果的时候。

小问题:
运行时错误也被称为______。
答案:exception


异常类

存在许多异常类,它们都直接或间接派生自System.Exception类。有些派生自System.Exception类的异常类是System.ApplicationException和System.SystemException。

异常类的层次结构在下图中显示。
在这里插入图片描述
如果任何用户定义的应用程序需要它自己的异常,它将从ApplicationException类继承异常。System.SystemException类充当所有预定义系统异常的基类。下表描述了一些派生自System.SystemException类的类。

异常类描述
System.IO.IOException处理I/O错误。
System.IndexOutOfRangeException处理当方法引用超出了数组界限的数组元素时所产生的错误。
System.NullReferenceException处理在解除空对象引用的过程中产生的错误
System.DivideByZeroException处理在除数中除数为0的过程中产生的错误。它派生自System.ArthmeticException类,后者的父类是SystemException
System.InvalidCastException处理在类型转换中产生的错误
System.OutOfMemoryException处理应用程序内存分配的错误

小问题:
以下哪个类可以处理可能在
将一个数据类型转换为另一个数据类型的过程中所产生的错误?
a.System.OutOfMemoryException
b.System.NullReferenceException
c.System.InvalidCastException
d.System.IndexOutOfRangeException
答案:
c.System.InvalidCastException


在这里插入图片描述

处理异常

需要在程序中使用异常处理程序来处理异常。这个处理程序会处理异常。异常处理中,应用程序分为若干代码块。显示产生错误可能性的块包含一个或多个异常处理程序。这些处理程序尊徐控制的结构和统一方式来处理系统级和应用程序级错误。

以下代码显示了变量被零除时如何产生异常:

	using System;namespace System_Exception{class Add_Num{public static void Adding_Numbers( int number1, int number2){int res = number1 / number2;Console.WriteLine(res);}static void Main(string[] args){Add_Num.Adding_Numbers( 10,0 );Console.ReadLine();}}<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/337279.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重生奇迹MU中的一些仓库细节问题!

一般游戏新人如果不花一点时间的话&#xff0c;根本难以把握好游戏中的节奏&#xff0c;甚至有可能连仓库都不会使用&#xff0c;原本与仓库相关的细节问题就有许多&#xff0c;若是不仔细给予关注的话&#xff0c;难免就会忙中出错。 重生奇迹MU当中的仓库位置 剑士出生地是…

RabbitMQ(六)消息的持久化

目录 一、简介1.1 定义1.2 消息丢失的场景 二、交换机的持久化方式一&#xff1a;直接 new方式二&#xff1a;channel.exchangeDeclare()方式三&#xff1a;ExchangeBuilder【推荐】 三、队列的持久化方式一&#xff1a;直接 new方式二&#xff1a;channel.queueDeclare()方式三…

Linux Capabilities 基础概念与基本使用

目录 1. Linux capabilities 是什么&#xff1f; 2. capabilities 的赋予和继承 线程的 capabilities Permitted* 允许 Effective* 有效 Inheritable* 遗传 Bounding&#xff08;集合&#xff09; Ambient 文件的 capabilities Permitted Inheritable Effective 3…

一文了解Git(所有命令)附带图片

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 其他…

nginx(1.13.7)首次安装出现:【make: *** 没有规则可以创建“default”需要的目标“build” 问题】解决措施

目录 前言&#xff1a; 一.龙蜥&#xff08;Anolis&#xff09;操作系统上安装GCC 1.安装gcc 2.检验安装 二.安装出现 make&#xff1a; *** 没有规则可以创建“default”需要的目标“build” 问题 1.解压安装nginx 2.安装出现问题展示 3.解决措施 4.重新编译进行安装 5…

内网渗透之CobaltStrike(上)

目录 一、Cobalt Strike简介 二、Cobalt Strike基本用法 1、启动服务端 2、客户端连接 3、设置监听器&#xff08;Listeners&#xff09; 4、脚本管理器&#xff08;Script Manager&#xff09; 5、攻击&#xff08;最常用的是生成后门&#xff09; 6、CS上线 7、Beaco…

C#编程-实现在文本文件中的读和写

实现在文本文件中的读和写 Stream类用于从文本文件读取数据和向文本文件写入数据。它是一个抽象类,支持向流读写字节。如果文件的数据仅是文本,那么您可以使用StreamReader类和StreamWriter类来完成相应的读和写任务。 StreamReader类 StreamReader类继承自从抽象类TextRea…

C2-4.3.1 多个决策树——随机森林

C2-4.3.1 多个决策树——随机森林 参考链接 1、为什么要使用多个决策树——随机森林&#xff1f; 决策树的缺点&#xff1a; A small change in the data can cause a large change in the structure of the decision tree causing instability 即&#xff1a;对数据集 中…

vue获取当前系统时间

1.获取当前系统时间时分秒 // 标准时间格式转化为年月日时分秒 export function ssDateTimeFn(timestamp) {if (!timestamp) {return timestamp}// timestamp是整数&#xff0c;否则要parseInt转换,不会出现少个0的情况const time new Date(timestamp)const year time.getFu…

代码随想录算法训练营第15天 | 102. 二叉树的层序遍历 + 226. 翻转二叉树 + 101. 对称二叉树

今日内容 102.层序遍历 226.翻转二叉树 101.对称二叉树 102.二叉树的层序遍历 - Medium 题目链接&#xff1a;力扣-102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&…

2024年软考网络工程师如何备考?考什么?

先看一下这知识点总结图&#xff0c;在备考复习前大致简单了解一遍&#xff01; 网工考试时间安排&#xff1a; 网工每年考两次&#xff0c;5月考试一次&#xff0c;11月考试一次 第一步&#xff1a; 通读教程&#xff08;《网络工程师》&#xff09;&#xff0c;首先对教程中…

Linux学习之网络编程(纯理论)

写在前面 刚刚更新完Linux系统编程&#xff0c;特别推荐大家去看的Linux系统编程&#xff0c;总共44个小时&#xff0c;老师讲的非常好&#xff0c;我是十天肝完的&#xff0c;每天大概看20集&#xff0c;每天还要以写blog的形式来写笔记来总结一下&#xff0c;虽然这十天有点…