---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

1、  什么是异常?

1、程序运行时发生的错误。(错误的出现并不总是程序员的原因,有时应用程序会因为最终用户或运行代码的环境改变而发生错误。比如:1、连接数据库时服务器停电了;2、操作文件时文件没了、权限不足等;3、计算器用户输入的被除数是0;4、使用对象时对象为null;等等)

2、.net为我们把“发现错误(try)”的代码与“处理错误(catch)”的代码分离开来。

2、异常处理的一般代码模式:

1、try{…可能发生异常的代码…} catch{…对异常的处理…} finally{…无论是否发生异常、是否捕获异常都会执行的代码…}

2、try块:可能出问题的代码。当遇到异常时,后续代码不执行。

3、catch块:对异常的处理。记录日志(log4net),继续向上抛出等操作。(只有发生了异常,才会执行。)

4、finally块:代码清理、资源释放等。无论是否发生异常都会执行。

3、案例:int x=5;int y=0;int z=x/y; 程序运行时出错,后续的内容无法运行。

4、程序一旦有一个功能发生异常,整个程序崩溃其他功能也无法正常运行。

5、  错误的几种形式:

1、   语法错误:语法错误一般编译器会帮我们解决。

2、   逻辑错误:编译没问题,执行不报异常,就是结果不对。

3、异常:在运行时发生的错误,异常一般会导致程序崩溃。

A、 空指针异常:未将对象引用设置到对象的实例。

Person  p=new Person();

P=null;

p.Name=”yzk”;

Console.WriteLine(P.Name);

Console.ReadKey();

B、 试图除以零异常:除数不能为0。

Int n=10;

Int m=0;

Int sum=n/m;

Console.WriteLine(sum);

Console.Readkey();

C、 输入字符串的格式不正常

string str=”abcd”;

int n=Convert.ToInt32(str);

Console.WriteLine(n);

Console.ReadKey();

6、  catch块的三种写法

A、 第一种写法,这种写法可以捕获所有的异常。

Catch

{

Console.WriteLine(“异常了。”);

}

B、 第二种写法,如果参数类型是:Exception,表示可以捕获所有的异常。

catch(Exception ex)

{

Console.WriteLine(“异常了。{0}”,ex.Message);

}

C、 第三种写法:根据参数类型的不同,可以捕获不同的异常。如参数类型是:NullReferenceException,表示只能捕获空指针异常。

Catch(NullReferenceException  ex)

{

Console.WriteLine(“异常了。{0}”,ex.Message);

}

注:捕获所有异常的catch不能写在具体异常前面。

Exception类是所有异常类的祖宗类。

7、  异常处理代码的其他几种形式:

A、 try->多个catch->一个finally

B、 try->(1个或多个catch),多个catch的顺序问题。没有finally。

C、 try->finally(只能有一个),没有catch也可以。

注意点:

A、 发生异常后,try块中,异常代码后的代码不会执行。

B、 finally块中的代码,无论是否发生异常都会执行。

C、 finally中不能写return语句。

D、 try中有return语句,finally也会执行。

E、  即便没有catch,finally中的代码也会执行,但finally之后的代码则不会。

8、  Exception ex异常也是对象,封装了异常发生时的一些信息。

9、  Exception类主要属性:Message、StackTrace、InnerException

10、 扔出自己的异常,扔:throw。抓住:catch

建议:通过逻辑判断(if-else)减少异常发生的可能性。

--------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

转载于:https://www.cnblogs.com/zxh930508/p/3544405.html

黑马程序员-异常介绍与处理相关推荐

  1. 黑马程序员-java介绍及开发环境搭建

    ---android培训java培训期待与您交流!---- 1.JAVA简介 欢迎进入JAVA编程语言的世界! 由sun公开主导开发的一款语言,目前主要应用在企业级web和移动端开发.完全面向对象,并 ...

  2. HTML+CSS+JavaScript网页制作案例教程-黑马程序员-第五章课后习题(课程介绍专栏效果)

    黑马程序员编著的教材  HTML+CSS+JavaScript网页制作案例教程 第五章:"课程介绍"专栏-课后习题参考代码 题目原型: 请结合给出的素材,运用列表标记,超链接标记以 ...

  3. 黑马程序员_异常(老毕视频总结及《疯狂java》补充)

    ----------------------<ahref="http://edu.csdn.net"target="blank">ASP.Net+A ...

  4. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  5. 最近整理的一些常见的面试题,面试大全,黑马程序员面试宝典题库---最新技术--篇

    第八章 最新技术(评论区留言获取原件) 一. Redis 1. Redis 的特点? Redis 是由意大利人 Salvatore Sanfilippo(网名: antirez)开发的一款内存高速缓存 ...

  6. 黑马程序员入学Java知识——精华总结

    黑马程序员入学Java知识--精华总结 J2SE部分,Java高新技术部分,7K面试题部分等黑马入学要求的知识点总结! 一.黑马程序员-java概述与基础知识 6 1.何为编程? 6 2.Java语言 ...

  7. 黑马程序员顺义校区php_PHP面向对象开发视频教程[黑马程序员]

    PHP面向对象开发教程 中级共14节课 本套教程讲解面向对象部分内容,从面向对象基础到面向对象高级.从自主开发面向对象到系统使用面向对象.从理论讲解到图解,全方位讲解面向对象. [讲解方式] 系统梳理 ...

  8. 黑马程序员-MyBatis 框架-最全入门笔记、阿伟看了都得说真大、真细、真全!!!

    MyBaits 写在最前 本篇文章是我学完黑马程序员 JavaWeb MyBatis 的总结分享,定位呢是最大小白友好的快速入门,欢迎大家一起交流技术! 文章目录 MyBaits 代码仓库 MyBat ...

  9. 黑马程序员——面向对象(1)

    ------ Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 三.黑马程序员-面向对象(1) 面向对象(Object-Oriented,简称OO)就是一种常 ...

最新文章

  1. struts2登录后返回登录前的页面
  2. 关于Enterprise Library 两个网占.
  3. java中子类继承父类程序执行顺序问题
  4. EF框架 对字段属性为NULL的空值处理 类型前面加上?保证EF列表读取显示数据不会报异常...
  5. 先自己看文档和百度再沟通
  6. C++多小球非对心弹性碰撞(HGE引擎)
  7. 快速排序与合并排序的分而治之
  8. uploadify多文件上传插件
  9. 浅谈UML类图中类之间的5种关系
  10. 系统、应用监控的缜密思路,堪称性能瓶颈的克星
  11. 【数据结构与算法】平衡二叉树、红黑树
  12. OFD文件结构--Signatures.xml
  13. 大整数乘法(Java)
  14. Win10环境下,SecureCRT连接不上虚拟机,显示连接超时Connection time out. 而且网络连接里没有网络适配器VMnet1和VMnet8,互ping也不同。...
  15. 转 fpga学习经验1
  16. 打造属于自己的 linux版(硬盘版或电子盘)view5 终端
  17. Windows 上的高效启动器—— Listary
  18. 互联网+智慧用电:智能微型断路器应用发展浅析-李亚俊
  19. switch在内存中的实现机制
  20. CleanMyMac X的免费版电脑系统瘦身工具

热门文章

  1. linux6.3支持gcc版本,Linux编程中GCC对C++标准支持和如何选择GCC版本使用
  2. linux ls 输出对齐,理解 Linux 中 `ls` 的输出
  3. mysql分组取日期最大的记录_mysql 分组 group by, 排序 取每条记录中,时间最大
  4. 信息系统项目管理师优秀论文:论信息系统范围管理
  5. Nginx映射本地静态资源时,浏览器提示跨域问题解决
  6. SpringBoot中定时任务与异步定时任务的实现
  7. AndroidStudio中调试时提示waiting for debugger的奇葩解决
  8. Android中Chronometer计时器的简单使用
  9. Winform中自定义xml配置文件后对节点进行读取与写入
  10. C#中将list进行序列化并使用SharpZipLib进行压缩