搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
盐析白兔
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
BeautifulSoup4的使用_beautifulsoup4 java
2
ctfshow2024元旦杯web_ctfshow easy_include
3
【unity3D】TileMap基础知识(详细版)_unity tilemap
4
一键AI智能改写文章,提高文章写作效率
5
每日五道java面试题之spring篇(三)
6
FL Studio 21.1.0官方中文破解版下载安装激活教程重磅发布含注册机
7
台积电工业网络安全事件概述与解决方案
8
单词接龙C++_c++单词接龙
9
数据恢复关键技术与实战指南
10
使用Mybatis Log plugin没有生效问题解决办法_mybatis log free插件不生效
当前位置:
article
> 正文
C#中的异常捕获机制(try catch finally)_c#除数不能为零的捕获异常
作者:盐析白兔 | 2024-02-19 13:15:38
赞
踩
c#除数不能为零的捕获异常
C#中的异常捕获机制(try catch finally) //转自:
http://blog.csdn.net/zevin/article/details/6901489
一、C#的异常处理所用到关键字
try
用于检查发生的异常,并帮助发送任何可能的异常。
catch
以控制权更大的方式处理错误,可以有多个
catch
子句。
finally
无论是否引发了异常,
finally
的代码块都将被执行。
throw
用于引发异常,可引发预定义异常和自定义异常。
二、C#异常处理的格式
try
{
程序代码块;
}
catch
(Exception e)
{
异常处理代码块;
}
finally
{
无论是否发生异常,均要执行的代码块;
}
三、异常处理实战
一个除数和零的简单例子:
public
class
DivisorIsZero
{
private
static
void
Main()
{
int
dividend=10;
int
divisor1=0;
int
divisor2=5;
int
DivideValue;
try
{
DivideValue=dividend/divisor1;
//(1)
//DivideValue=dividend/divisor2; //(2)
System.Console.WriteLine(
"DivideValue={0}"
,DivideValue);
//(3)这一行将不会被执行。
}
catch
{
System.Console.WriteLine(
"传递过来的异常值为:{0}"
,e);
}
finally
{
System.Console.WriteLine(
"无论是否发生异常,我都会显示。"
);
}
}
}
注:(1)行被执行则会抛出一个异常,如果没有
catch
语句,程序会异常终止,使用不带参数的
catch
子句,则可以捕获任意类型的异常。
如果将(1)行注释掉,启用(2)行,这意味该程序运行时不会出现异常,从输出可知,
finally
代码块仍将被执行。
可以给
try
语句提供多个
catch
语句,以捕获特定的异常,如上例中:0作为除数则会引发DivideByZeroException类型的异常,上例中的
catch
语句可以作如下修改:
catch
(DivideByZeroException e)
{
System.Console.WriteLine(
"零不能作为除数!异常值为:\n{0}"
,e);
}
catch
(Exception e)
{
System.Console.WriteLine(
"并非\''零作为除数引发的异常\"!异常值为:\n{0}"
,e);
}
为什么还要加上一个
catch
(Exception e)子句呢?原因很简单,
catch
(DivideByZeroException e)子句只能捕获特定的异常,
try
内的程序代码可能还会产生其它的异常,这些异常只能由
catch
(Exception e)来捕获了。
下表给出了一些常见的异常:
System名称空间中常用的异常类
异常类名称 简单描述
MemberAccessException 访问错误:类型成员不能被访问
ArgumentException 参数错误:方法的参数无效
ArgumentNullException 参数为空:给方法传递一个不可接受的空参数
ArithmeticException 数学计算错误:由于数学运算导致的异常,覆盖面广。
ArrayTypeMismatchException 数组类型不匹配
DivideByZeroException 被零除
FormatException 参数的格式不正确
IndexOutOfRangeException 索引超出范围,小于0或比最后一个元素的索引还大
InvalidCastException 非法强制转换,在显式转换失败时引发
MulticastNotSupportedException 不支持的组播:组合两个非空委派失败时引发
NotSupportedException 调用的方法在类中没有实现
NullReferenceException 引用空引用对象时引发
OutOfMemoryException 无法为新语句分配内存时引发,内存不足
OverflowException 溢出
StackOverflowException 栈溢出
TypeInitializationException 错误的初始化类型:静态构造函数有问题时引发
NotFiniteNumberException 无限大的值:数字不合法
四、定义自己的异常类
除了预定义的异常外,我们还可以创建自己的异常,过程比较简单:
一声明一个异常,格式如下:
class
ExceptionName:Exception{}
二引发自己的异常:
throw
(ExceptionName);
看一个例子:
class
IAmSecondGrade:System.Exception{}
//声明异常
class
SecondGrade
{
public
static
int
mul(
int
first,
int
second)
{
if
(first>100||second>100)
throw
new
IAmSecondGrade();
//引发异常
return
(first*second);
}
public
static
void
Main()
{
int
mul_value;
try
{
mul_value=mul(99,56);
System.Console.WriteLine(
"99与56积为:{0}"
,mul_value);
mul_value=mul(101,4);
System.Console.WriteLine(
"出现异常,这行是不会被执行的。"
);
}
catch
(IAmSecondGrade)
//捕获自定义的异常
{
System.Console.WriteLine(
"我才上二年级,超过100的乘法我不会。嘿嘿,我自定义的异常。"
);
}
catch
(System.Exception e)
{
System.Console.WriteLine(
"非自定义异常。其值为:{0}"
,e);
}
}
}
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/盐析白兔/article/detail/114897
推荐阅读
article
java
的
异常
笔记_
error
:
(46,46)
java
:
-
source
1.5 中不支持 mul...
抛
异常
的一些规范:1、
catch
里面一定要至少写一些标记,便于
异常
排查2、
catch
中抛出和记录最好只写一种(throw...
赞
踩
article
C#
try
catch
finally
:
异常
处理
_
c#
ado.net
try
catch
fin...
C#
try
catch
finally
:
异常
处理
在 C# 语言中
异常
与
异常
处理
语句包括三种形式,即
try
catch
...
赞
踩
article
C#
try
、
catch
、
finally
含义...
一、C#的异常处理所用到关键字
try
用于检查发生的异常,并帮助发送任何可能的异常。
catch
以控制权更大的方式处理错...
赞
踩
article
C#
如何使用
finally
执行
清理
代码_
c#
finally
...
finally
语句的用途是确保立即进行对象(通常是容纳外部资源的对象)的必要
清理
(即使引发异常)。_
c#
finally
...
赞
踩
article
C#中
异常
处理语句
Finally
_
c#
finally
...
转自:http://zhidao.baidu.com/link?url=SsYrrtv7MchPg08WaUyF_KB3...
赞
踩
article
C#:
try
catch
finally
:
异常
处理_c#
try
catch
finally
...
常用的系统
异常
类如下表所示。
异常
类 说明 System.OutOfMemoryException 用 new ...
赞
踩
article
try
、
catch
、
finally
用法总结
_
try
catch
finally
...
try
catch
finally
使用整体执行流程如下,有图看着更容易理解。详细说明和代码
try
-
catch
-fina...
赞
踩
article
C#
中
finally
的
用法_
c#
finally
...
当一个异常抛出时,它会改变程序
的
执行流程。因此不能保证一个语句结束后,它后面
的
语句一定会执行,在
C#
中这个问题可以用...
赞
踩
article
c++
try
catch
语句
_教你一招搞定
try
,
catch
,
finally
的
执行
顺序
...
在面试的时候,经常会问到一些很基础的知识,比如有没接触过
try
,
catch
,
finally
?他们的
执行
顺序
是怎么样的呢?...
赞
踩
article
C#语言基础五之
try
-
catch
-
finally
处理
异常
_
net
调试时主动进
catch
...
try
:尝试执行
try
中的代码,如果出现
异常
会停止执行跳转到
catch
中
catch
:
处理
异常
反馈
异常
的问题 可以自行定...
赞
踩
article
C#
异常
处理
(
try
\
catch
\
finally
)_c#
try
catch
finally
...
异常
是在程序执行期间出现的问题。
C#
中的
异常
是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。
异常
提供了一种把程...
赞
踩
article
C#的
异常
处理
机制(
try
...
catch
...
finally
)_
c#
try
catch
忽略
异常
...
what?在C#语言中
异常
与
异常
处理
语句包括三种形式,即
try
catch
、
try
finally
、
try
catch
...
赞
踩
article
C#
异常
处理
,
try
、
catch
、
finally
、
throw
_c#
try
catch
throw
用...
异常
处理
:程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做
异常
。
处理
这种错误,就叫做
异常
处理
。 1、...
赞
踩
article
C#
try
、
catch
、
finally
_
c#
的
try
、
catch
、
finally
...
在
c#
中处理错误经常会使用这几个关键字。本文介绍一下其用法
try
、
catch
、
finally
:这三个关键字
try
是必定要...
赞
踩
article
(24)
C#
异常
处理
——
try
-
catch
-
finally
的
用法_3.什么
是
c#中
的
异常
处理
,
以及如...
什么
是
异常
?
异常
是
指在程序运行过程中,发生错误会导致程序退出,这种错误,就叫做
异常
。
处理
这种错误,叫
异常
处理
。
异常
处理
...
赞
踩
article
C# try
catch
finally
...
前言
catch
和
finally
一起使用的常见方式是:在 try 块中获取并使用资源,在
catch
块中处理异常...
赞
踩
article
c#
入门-
finally
块
和
using
语句_
c#
finally
...
finally
块
需要配合try
块
使用。这个try
块
可是是有catch
块
,也可以是没有catch
块
的。如果try没有异常,...
赞
踩
article
try
-
catch
(
C#
参考)...
https://msdn.microsoft.com/zh-cn/library/0yd65esw.aspxTry-ca...
赞
踩
article
C#
try
-
catch
用法_
c#
try
catch
...
例子查询出错时,弹出对话框 private void cxBtn_Click(object sender, Event...
赞
踩
article
c#
try
catch
finaly
用法_
c#
中
try
catch
的用法...
try
catch
finally1、将预见可能引发异常的代码包含在
try
语句块中。2、如果发生了异常,则转入
catch
的执...
赞
踩
相关标签
c#
开发语言
后端
异常
异常处理
Finally
java
finally 的用法
c++ try catch语句
catch后面的语句还会执行吗
return finally执行顺序
exception
编程语言
C#
try-catch
数据库