文档章节

throw new Exception

QGlaunch
 QGlaunch
发布于 2015/06/16 11:59
字数 681
阅读 43
收藏 1


throw new Exception(String, Exception)

throw new Exception(String)
throw是明确地抛出异常

MSDN:Exception (String, Exception) 使用指定错误信息和对作为此异常原因的内部异常的引用来初始化 Exception 类的新实例。

    在发现异常以后作一下记录异常信息然后在抛出异常,让客户知道有问题了,以便通知技术人员。因为程序异常以后就崩溃的机会很大,先记录问题下来再崩溃才行。

捕获异常以后,再抛出一个新的异常。再抛出新异常之前,你可以对前面捕获的异常做一些操作,比如记录日志、获取异常信息然后写到新异常中

int num = Convert.ToInt32(textBox1.Text);
try
{
    if (num == 0)
    {
        throw new ArgumentNullException("出现零!");
    }
    if (num == 1)
    {
        throw new Exception("出现壹!");
    }
}
catch (ArgumentNullException ex)
{
    MessageBox.Show(ex.Message);
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
    catch是用来处理错误,就是发生了错误时,会执行catch部分.注意:是"发生了错误时".
但是, 在没有发生错误时, 你自己想引发错误怎么办呢? 可以使用throw语句来手工引发一个错误.

    比如上面这段程序, 你先画一个文本框,textBox1,一个按钮button1, 如果把这段代码放到button1的click事件里. 
    如果文本框中文本是0,引发一种错误,文本框文本是1时又引发另一种错误,并可采用不同的处理办法.

我认为catch块里通常对附异常有三种办法:一种办法是,什么也不做,catch语句里只有空语句;另一种办法是,用messagebox之类的通知异常;还有一种办法是,throw 一个new的异常。
    用哪种办法取决于你希望如何处理这个异常。
    如果你想直接通知用户,用messagebox之类的就好了
    如果你想由调用这个函数的程序来处理,可以throw一个new
    如果你希望你的程序出了“这个”异常还正常运行,就像什么也没发生一样,你可以空语句。
    总之try catch是有意义和必要的,但你的程序如何catch就是你自己的想法喽。
    一般来说没有必要明确的throw出一个异常,异常应该是因为程序本身运行的问题而产生的,但是有两种情况:
    1. 测试的时候,比如说你不能真的模拟一个内存耗尽这个异常吧,那么只好明确地throw一个了。

2. 自定义的异常需要明确的throw出来,因为满足这个条件往往是我们自己制定的规则不满足了。



本文转载自:http://blog.csdn.net/wsz1z154/article/details/7727224

共有 人打赏支持
QGlaunch
粉丝 4
博文 76
码字总数 12568
作品 0
朝阳
私信 提问
Zephir-异常处理

Zephir异常处理异常处理 异常处理机制 Zephir可以处理低级的异常,提供跟PHP类似的函数式异常处理方法。当一个异常被抛出时,需要使用一个catch语句来捕获错误并允许用户自由处理错误。 Zeph...

碳素云信息技术
2016/03/05
5
0
php使用openssl来实现非对称加密

使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 安装openssl和php的openssl扩展 生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定...

edgeto
2017/10/22
0
0
PHP学习笔记7:错误和异常处理

读《PHP和MySQL Web开发》笔记合集: http://my.oschina.net/bluefly/blog/478580 1、异常处理概念 1)异常处理在 try 代码块被调用执行 try { //code goes here } 2)PHP中,异常必须手动抛...

slyso
2015/10/26
0
0
DBHelper访问PostGreSQL数据库

#region DIRECTIVES using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Collections; using System.Configu......

pollux
2014/03/10
502
3
zephir-(12)php函数和异常处理

先在这里感谢各位zephir开源技术提供者 经过了一个多月的学习,zephir的文档译文和基础讲解也将近尾声了,后面的内容最为重要也希望和大家一同更好的学习交流,本节的内容只要是讲解zephir是怎么...

喵了_个咪
2016/03/12
68
0

没有更多内容

加载失败,请刷新页面

加载更多

Android 通过DrawableInflater加载自定义Drawable

一、Drawable 在Android系统张,图形图像的绘制需要在画布上进行操作和处理,但是绘制需要了解很多细节以及可能要进行一些复杂的处理,因此系统提供了一个被称之为Drawable的类来进行绘制处理...

IamOkay
14分钟前
1
0
灵活无处安放,所以选择流浪....《漆黑的空间》& 《灰色轨迹》

灵活无处安放,所以选择流浪....《漆黑的空间》& 《灰色轨迹》

yizhichao
20分钟前
1
0
Kafka+Flink 实现准实时异常检测系统

1.背景介绍 异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防...

架构师springboot
今天
7
0
DecimalFormat 类基本使用

/* * DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度 * 0 表示如果位数不足则以 0 填充 * # 表示只要有可能就把数字拉上这个位置 * */ public static void main(String[] args){...

嘴角轻扬30
今天
4
0
This APT has Super Cow Powers.

在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有超级牛力 牛力是个什么梗? 则说明你的系统...

taadis
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部