c#中构建异常处理

异常处理

    异常是程序运行中发生的错误,异常处理是程序设计的一部分。在c#中异常处理是通过Exception基类进行的,可以创建自己的异常类,但这个类必须是继承自Exception基类。
   异常将导致不完善或者不需要的结果,因此在程序设计中需要处理异常。异常也可以是象"IndexOutOfBounds"这样的错误,这个错误表示程序试图访问数组中部存在的元素;比如数组最大元素为100,当试图访问元素101时就将会发生这样的错误。但这些都是内建的异常,可以直接通过Exception基类处理,如果发生的异常不是内建的,那么就需要我们自己见一个异常处理类,当然这个类时继承自Exception基类。

   下面的程序定义了一个自己的异常类:

using System;
public class MyException:Exception
{
public string s;
public MyException():base()
{
s=null;
}
public MyException(string message):base()
{
s=message.ToString();
}
public MyException(string message,Exception myNew):base(message,myNew)
{
s=message.ToString();// Stores new exception message into class member s
}
public static void Test()
{
string str,stringmessage;
bool flag=false;
stringmessage=null;
char ch=' ';
int i=0;
Console.Write("Please enter some string (less than 27 characters) - ");
str=Console.ReadLine();
try{
ch=str[i];
while (flag==false)
{
if (ch=='\r')
{
flag=true;
}
else{
ch=str[i];
i++;
}
}
}
catch(Exception e){
flag=true;
}

if (i>27)
{
stringmessage="你的输入不能超过27个字 !";
throw new MyException(stringmessage);
}
}
public static void Main()
{
try
{
Test();
}
catch(MyException e)
{
Console.WriteLine(e.s);
}
}

    上面的代码建立了一个新的继承于Exception基类的异常类叫MyException,这个类有三个过载构造函数,采用三个构造函数的目的十分简单:为了能够过载基类的构造函数。基类中缺省的和已经实现的构造函数必须在继承类中实现,但是我们设计这个类的真正目的是:当用户输入超过27 个字就显示一段错误提示信息,提醒用户输入不能超过27个字。虽然这更像是数据验证而不是一个真正的异常但却是一个比较好的例子,新的异常MyException被函数Test()抛出,通过该方法信息"你的输入不能超过27个字"被main()的catch块获得。

时间: 2024-09-24 07:54:27

c#中构建异常处理的相关文章

在Dreamweaver中构建ASP.net开发环境

asp.net|dreamweaver 在开发网站,特别是开发网络数据库之前,首先应该认真构建好 Dreamweaver MX 2004+ASP.NET 开发环境.本例将向读者介绍如何在 Windows XP 操作系统下构建开发环境. 操作步骤 ( 1 )单击[开始]→[控制面板]. ( 2 )在弹出的[控制面板]窗口中双击[添加或删除程序]按钮图标,在弹出的[添加或删除程序]对话框中选择安装 IIS 服务器. ( 3 )安装好 IIS 服务器后,在[控制面板]窗口中单击管理工具,然后在弹出的[

Symbian学习总结-基础篇-Symbian C++中的异常处理

在现代高级语言中,大多数语言都有对应处理异常的关键字,如:C++中的try/catch,Delphi中的Try/Except/Finally,这些关键字都被编译器直接的支持. 但是,当Symbian OS C++被发明的时候,C++中的关键字try/catch/finally还没有被标准支持.而且照Symbian官方的话来说,C++的异常处理机制太笨重,不够轻量级,他们设计了一套效率更加高,更适合于小型的.内存受限的设备的异常处理机制. 一.回顾历史 在标准C++中,我们使用如下方法来处理异常:

使用Visual Studio 2010在WPF中构建数据驱动的大纲/细节业务表

概述 在本实验中,您将了解如何使用 Visual Studio 2010 工具在 WPF 4.0 中创建和自定义大纲/细节业务表. 目标 完成此实验后,您将学会: 如何在 WPF 项目中使用"Data Sources"窗口创建初始支架,以绑定您应用程序的数据 如何使用"Data Sources"窗口在现有 WPF 控件中"绘制"数据绑定 如何使用"Data Sources"窗口创建大纲/细节支架 如何自定义"Data

如何在SQL Server中构建数据仓库

[导读]本文介绍如何在SQL Server中构建简单的数据仓库,并分析相关的问题. 基本概念: 1.多维数据集:多维数据集是联机分析处理 (OLAP) 中的主要对象,是一项可对数据仓库中的数据进行快速访问的技术.多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构. 2.维度:是多维数据集的结构性特性.它们是事实数据表中用来描述数据的分类的有组织层次结构(级别).这些分类和级别描述了一些相似的成员集合,用户将基于这些成员集合进行分析. 3.度量值

在Linux平台及IPv4环境中构建IPv6测试环境

随着互联网技术的不断发展,传统的 IPv4 地址已不能满足用户的需要.新一代的 IPv6 协议也日益被广泛的接受和使用,越来越多的软件系统都要求支持 IPv6 网络协议.然而现有网络环境对 IPv6 的支持仍然非常有限,这给软件的开发和测试都带来了一定的困难.本文将介绍如何使用 Apache 在现有的 IPv4 网络中构建模拟的 IPv6 环境. 在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境 1 IPv6简介 IPv6(Internet Protocol Version 6)

JavaScript中的异常处理方法介绍

 这篇文章主要介绍了详解JavaScript中的异常处理方法,包括基本的try...catch语句和throw语句的使用,需要的朋友可以参考下     有三种类型的编程错误:(1)语法错误和(2)运行时错误(3)逻辑错误: 语法错误: 语法错误,也被称为解析错误,在编译时进行传统的编程语言,并出现在JavaScript解释时. 例如,下面一行将导致一个语法错误,因为它缺少一个右括号: ? 1 2 3 4 5 <script type="text/javascript"> &

浅析Lua编程中的异常处理

  这篇文章主要介绍了浅析Lua编程中的异常处理,是Lua入门学习中的基础知识,要的朋友可以参考下 需要进行错误处理 错误处理是必要的,因为真实世界中的操作通常需要使用复杂的操作,包括文件操作,数据库事务和web服务调用.没人关心错误的业务,涉及保密信息或金钱交易时造成大的损失. 在任何编程,总是有错误处理的要求.错误可以是两种类型,其中包括, 语法错误 运行时错误 语法错误 因使用不当造成的各种程序组件,如运算符和表达式中出现语法错误.一个简单的例子中的语法错误如下所示. 代码如下: a ==

JS中的异常处理方法分享

我们在编写js过程中,难免会遇到一些代码错误问题,需要找出来,有些时候怕因为js问题导致用户体验差,这里给出一些解决方法 js容错语句,就是js出错也不提示错误(防止浏览器右下角有个黄色的三角符号,要不用户体验不好)    代码如下: window.onerror=function(){return true;}        下面是为了获取js异常信息,方便开发者找回问题   1,try...catch...   代码如下: <script type="text/javascript&q

Python中的异常处理

  这篇文章主要介绍了解析Python中的异常处理,异常处理是学习每门编程语言都必须掌握的重要知识,本文代码基于Python2.x版本,需要的朋友可以参考下 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1. 用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果和错误码混在一起,造成调用者必须用大量的