try catch 学习记入

执行过程

public void method(Action action)
{
    //2.method执行中
    try
    {
        action(); //3.调用委托
        string x = "5"; //如果action执行时出现了error,但是内部有catch机制并且没有继续throw出来,那么这里"会"执行
    }
    catch (Exception ex)
    {
        //8.捕获error
        string x = ex.Message; //如果action执行时出现了error,但是内部有catch机制并且没有继续throw出来,那么这里"不会"执行
    }
}
protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        //1.调用method函数,并且传入委托
        method(delegate()
        {
            //4.执行委托函数
            try
            {
                throw new Exception("x"); //5.error 出现
            }
            catch (Exception ex)
            {
                string x = ex.Message; //6.捕获error
                throw ex; //7.把error传递下去 (如果没有把error传递,那么外部的catch就不会触发了)
            }
        });
        string xyx = "z"; //9.因为method函数中的catch没有在throw所以会执行这里
    }
    catch (Exception ex)
    {
        string x = ex.Message;
    }
    finally
    {
        //10 finally 一定会执行!
    }
}

重点 catch有没有继续throw, finally一定会执行

自定义catch

只要一个类继承了System.Exception 它就可以作为一个catch , 可以被throw

一个try 可以有多个 catch(不同的Class处理)

简单的说 throw new someClass 就是丢一个对象,new someClass()可以像普通的实例化一样,写一些初始化等等。

catch 捕获到的就是这个对象,就是一般的对象咯,一样可以调用属性或者方法等等。

public class MyEx : System.Exception
{
    public MyEx() : base() { }
    public MyEx(string message, Exception innerException) : base(message, innerException) { }
    public MyEx(Int64 number) //初始化
    {
        this.number = number;
    }
    public Int64 number { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        throw new MyEx(5);
    }
    catch (MyEx ex)
    {
        Int64 z = ex.number; //调用公有属性
    }
    catch (Exception ex)
    {
        string x = ex.Message;
    }
    finally
    {
        //10 finally 一定会执行!
    }
}
时间: 2024-10-13 12:14:45

try catch 学习记入的相关文章

Alex Fung魔方转法学习记

我学了Alex Fung魔方转法,这是一种精确的数学法,且是一种思路,一个系统解决方案,一种原理,不用死记硬背公式. 这是一篇学习记,所有用到的算法必须去原文查看具体的数学公式和Java Applet的演示.因为我还不会编程演示,所以本文不self-contained,而像是一个数学课抄录的笔记,只是记录我的学习过程. 首先,请拿纸和笔——数学公式必须自己写一遍,自己推导一遍,使得自己看到那些符号,心里不发怵,所以写只是为了变得信任眼熟亲切记得. 魔方基础的令人讨厌气噎眼花缭乱终于整个头脑都拧巴

Linux History安全问题【保存记录防止删除】+完善Linux/UNIX审计 将每个shell命令记入日志

2011-09-27 22:11:51|  分类: rhel5_033|举报|字号 订阅 Linux利用PROMPT_COMMAND实现审计功能 这个系统审计,记录什么用户,在什么时间,做了什么操作. 然后将查到的信息记录到一个文件里. 一. 配置 1. 在/etc/profile 文件的最后,添加如下2行代码: export HISTORY_FILE=/var/log/`date ‘+%Y%m’`.log export PROMPT_COMMAND=’{ date “+%Y-%m-%d %T

Entity Framework with MySQL 学习笔记一(查看EF和SQL记入)

做数据库的一向来都会很注意请求的次数还有语句.这关系到很多性能的问题. 因此在使用EF的时候如果不了解原理很可能会搞出很糟糕的请求. 所以呢,在还没有搞懂EF前最基本的是你得"看得见",EF为我们生成了什么样的 SQL语句,和访问了多少次SQL 其实有很多很好的工具可以实现这些东西,但是我懒的去找来试,所以呢找了一个简单又勉强可以用用的. 这个是微软本身的日志 参考 : http://msdn.microsoft.com/en-us/data/jj556606 -Logging Dat

php自定义错误处理和try{}catch(){}学习

<?php //语法错误 //运行时的错误 //逻辑错误 //php的错误报告级别 // display_errors; // ini_set("display_errors", "On"); // error_reporting(); // error_reporting = E_ALL &~ E_NOTICE; //除了什么以外 error_reporting(0); //屏蔽系统的错误信息 function error_handler($errL

软工学习记1

这学期,我们分了方向,专业方向.也许向老师说的那样学习好的选了计科,我大概属于学习差的吧.高中的紧绷让我到了大学不知道该干嘛了,荒废了整个大一,到现在还不知道自己读了大学学会了干什么.现在我要追赶了,毕竟差的不是一点半点.分了方向,有了任务,也大概自导自己该干嘛了.开始感觉还是挺无从下手的,不过信心还是有的.也算亡羊补牢吧. 这俩星期自己抽空看了看这本构建之法.粗略明白了点要想开发一个堪称完美的软件是十分困难的.需要大量人力时间.软件等于程序加软件工程,软件开发的阶段不同,我们所需要的标准花费的

ftk学习记(icon篇)

[声明:版权全部,欢迎转载.请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在開始今天的文章之前.我们还是先看一下上一节的效果图. 大家能够參照上一节的解说,是不是存在这种button,是不是存在这种wait_box控件,相同是不是能够看到wait_box活动的情形.当然,有条件的朋友最好自己编译一下这个demo代码.按步骤调试每一行代码. 今天,如标题所看到的.我们所学习的是icon的内容.简单一点说,此次基本的目的就是想在窗体上显示icon图像的内容. 至于怎样显

ftk学习记(label篇)【转】

转自:http://blog.csdn.net/feixiaoxing/article/details/25000093 版权声明:本文为博主原创文章,未经博主允许不得转载. [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 还是接着上面的一篇博文.之前曾经答应过大家,让大家看一下最简单的ftk程序是怎么运行的.所以,这里我们上传一下图片. 因为还是编辑模式,所以暂时还不能看到图片在网页中是怎么显示的.不过没有关系,这次只是做一个最初的尝试

老菜鸟MVC学习记

大学毕业已三年,菜鸟称谓依然.毕业前使用过六个月的MVC,但是自从毕业后因为公司一直在用webForm,所以MVC就没有再用过.直到最近打算用MVC做一个项目管理系统,才发现MVC已经变得陌生了,只有再从新学起.为了防止自己的拖延症拖延自己的学习计划,特在博客园写此文.学习期间,所有的感悟和整理的可以提高开发速度的代码都要粘出来,一是方便今后随时取用,二是方便所有像我一样的菜鸟,可以少走弯路.

python学习记【1】

本人是个渗透小子 从开始接触渗透已经将近四年了 现在目标就是python的学习与应用 今天听了老男孩的python的课程所以心血来潮就来写个文章 今天的内容很是多  主要学习了有几个块 1. 用户的交互 使用input 输入信息 Input 接受的值是string类型的 如果想要输入int类型的需要类型转换 格式:int(input("输入一个数字:")) 2. IF判断流程控制 If 顾名思义就是判断语句 If语句的格式:               If [条件]: