在使用三层或七层架构来敲系统的时候,常常需要判断多个条件,因此可能一个方法里面需要返回不同的提示消息,这时:使用throw 和 try catch来处理。

第一步:不管在哪一层(不是U层就行,因为U层就直接用MessageBox提示了)

//在B层随便写个
if(条件1成立)
{throw new Exception("条件1提示");
}
if(条件2成立)
{throw new Exception("条件2提示");
}

第二步:在U层添加如下代码

//在U层将调用的方法,包起来  如果try的内容有throw,就会在catch里抓出来
try
{//调用三层或七层的方法
}
catch (Exception ex)
{MessageBox.Show(ex.Message);return;   //停止向下运行
}

  throw是我们自己“扔”出的错误,它会一直往外扔,直到扔到最顶层的开始调用部分,比如,从U层调用了一个方法,经过了B层,在D层中写了个throw new Exception(“我是D层”),它就会一层层扔回,直到U层,我们需要用try catch做处理,不然它就报错了,处理的方法就是第二步的代码,将错误用提示框弹出来。
  使用心得:当执行了throw语句,它就不会继续向下执行,而是直接返回了,所以如果我们成功的运行到了该语句的下一条语句,就说明我们操作成功了,不用在添加判断,来提示是否成功。比如还是上面第一步的代码,添加一行语句:

if(条件1成立)
{throw new Exception("条件1提示");
}
if(条件2成立)
{throw new Exception("条件2提示");
}

如果条件1成立了,那么就在条件1的if语句中返回了,不会执行到条件2。

C# throw new Exception的使用相关推荐

  1. PHP 异常处理 throw new exception

    PHP 异常处理 throw new exception 参考文章: (1)PHP 异常处理 throw new exception (2)https://www.cnblogs.com/7qin/p ...

  2. java中的throw new Exception();和throw e;异常抛出

    java代码如下: package com.imooc.exception; public class Throw1 { public static void main(String[] args) ...

  3. throw new Exception是什么意思,这么使用

    throw new Exception("自己写bai的抛出错误的原因"). 用这句的是原因,我们已经知道有一个错误存在,然后用这个抛出错误的原因让使用这个代码的人知道这是为什么, ...

  4. JAVA→异常、异常类体系结构、try→catch→finally处理异常、throw new Exception(“重构异常“);、throws Exception{ }、自定义异常

    没有异常处理的话,程序发生异常,将终止. 有了异常处理的话,程序发生异常,也继续执行. 有try时,不发生异常执行try→finally,发生异常执行try→catch→finally 多个catch ...

  5. netcore部署docker,在图片处理时有乱码或者The type initializer for ‘Gdip‘ throw an exception异常

    1.The type initializer for 'Gdip' threw an exception 未安装系统基础库造成,在Dockfile中写入如下内容,如果下载比较慢,最好做成自己的基础镜像 ...

  6. throws throw 自定义异常

    我们知道当程序遇到异常时除了用try-catch-finally来捕获异常外,还可以用throws和throw去抛出异常,使用异常处理可以定位问题所在处,方便修改程序代码: 例如利用try-catch ...

  7. EntLib 3.1学习笔记(5) : Exception Handling Application Block

    [en] http://msdn2.microsoft.com/en-us/library/aa480461.aspx [ch] http://www.microsoft.com/china/MSDN ...

  8. 看完这篇Exception 和 Error,和面试官扯皮就没问题了

    来自:Java建设者 在 Java 中的基本理念是 结构不佳的代码不能运行,发现错误的理想时期是在编译期间,因为你不用运行程序,只是凭借着对 Java 基本理念的理解就能发现问题.但是编译期并不能找出 ...

  9. Java基础-异常(Exception)处理

    Java基础-异常(Exception)处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.异常的概述 什么是异常?Java代码在运行时期发生的问题就是异常.在Java中,把异 ...

最新文章

  1. 若依前后端分离如何写移动端接口_前后端分离实践的架构设计
  2. iOS 有用的代码片段
  3. XML系列之--解析电文格式的XML(二)
  4. rust高级矿场_高级 Rust 所有权管理
  5. 国王游戏(洛谷-P1080)
  6. CentOS 7 各个版本的区别
  7. 模板元实现顺序、分支和循环结构
  8. 【C#】Windows Image Acquisition (WIA) 的用法
  9. 什么时候不需要回表?
  10. Keil3/4/5 For C51安装教程(附Baidu 云链接)
  11. mysql自动跑sql发邮件_SQL server 表数据改变触发发送邮件的方法
  12. 信捷PLC XD/XL系列C语言功能块的应用
  13. 《Netty实战》总结
  14. 2019年3月6日-KS103的使用
  15. 计算机中8位二进制机器数,一个字节由8位二进制数组成,其最大容纳的十进制整数为()...
  16. canvas画出闪瞎眼的简单图形
  17. 数据挖掘中所需的概率论与数理统计知识
  18. 谁的青春不军训? 教官用了Iterator Pattern都说好
  19. Dart的mixin详解
  20. Vue——邂逅Vue

热门文章

  1. html samp如何转成块,HTML code|kbd|samp|var程序标签应用说明-立地货
  2. 解决 HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
  3. Ubuntu18.04 安装Nvidia驱动+CUDA+cuDNN+Anaconda3(图文超详细)
  4. oracle 客户端 sqlplus 命令行 问号 乱码
  5. matlab三维螺旋,如何在MATLAB或Python中生成三维螺旋线?
  6. C语言,函数没有return,返回类型就是void的么?
  7. 求问ps如何导出单个切片及PS导出所有的切片图像
  8. 【偶爱宋词】章良能·小重山
  9. 实操演示 | 如何将示波器波形保存到U盘
  10. 上海跃兔网络科技有限公司简介