#异常  

##1.异常处理概述  

1.异常时程序在执行过程中所产生的问题。导致异常的原因的有很多种,包括:  

1. 用户输入了无效数据  

2. 找不到一个需要打开的文件  

3. 在通讯过程中网络连接断开  

4. JVM发生了内存溢出。  

2.异常分为三类:

1. 检查异常:检查异常通常是用户错误或者不能被程序员所预见的问题。例如,如果要打开一个文件,但无法找到该文件,此时就会产生异常。

2. 运行时异常:运行时异常是一个程序在运行过程中可能发生的,可以被程序员避免的异常类型。例如:数组越界、除数为0、引用为null、把引用类型转换为一个无效的数据类型等。

3. 错误:实际上错误根本不是异常,但却是用户或程序员所无法控制的问题。如发生调用栈溢出。   

##2.异常控制流程  

异常时被一个方法抛出的对象,当一个方法被调用时,这个方法被压入到内存的方法调用栈中。当一个方法抛出异常时,该方法从调用栈中被弹出同时产生的异常对象抛给了栈中的前一个方法。  

##3.Thowable类  

Throwable类有两个子类:Exception和Error.Error类是所有Java错误类的父类;Exception类是所有异常的父类,包括运行时异常和检查异常。例如:ArratIndexOutOfBoundsException和ArithmeticException是运行时异常。IOException和ClassNotFoundException是检查异常。  

##4.捕获异常  

在Java中我们通常在一个方法中使用try和catch关键字来捕获异常。  



    try{

     //被保护的代码块  

       }catch(异常的名称 e1){

        //捕获块  

     }   

多个异常块可用多个catch捕获,但是小范围异常放在前面,大范围异常放在后面。  

##5.异常声明  

如果一个方法没有处理检查异常,那么该方法必须使用throws关键字来声明异常。关键字throws出现在方法签名的末尾。例如:   



    public void deposit(double amount)throws RemoteException    

##6.异常抛出   

我们可以通过throw关键字来抛出异常,这个异常可以是一个新的异常实例,也可以是一个我们刚刚捕获的异常。throw语句将导致当前代码立即停止运行,而且异常将被抛给调用栈中前一个方法  

##7.throws与throw区别   

throws声明某个方法有可能产生某个异常  

throw在方法中抛出某个具体的异常。

最新文章

  1. spring squertz定时任务
  2. WSME api controller嵌套使用wtypes
  3. ZXing生成二维码
  4. 提升你的开发效率,10 个 NPM 使用技巧
  5. MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(01)
  6. Hadoop中如何查看文件的block size
  7. [MySQL Reference Manual] 6 安全性
  8. (五)u-boot2013.01.01 for TQ210:《移植前的准备及u-boot初编译》
  9. MSSQLServer基础02(SQL语句入门(脚本、命令))
  10. SQL*PLUS中批量执行SQL语句
  11. document.domain - JavaScript的同源策略问题:错误信息:Permission denied to access property 'document'_eecc00_百度空间
  12. ElasticSearch实战
  13. PHP异常处理机制
  14. 【转】Poco 1.4.2 HTTPClientSession/HTTPRequest 使用使用代理(proxy)需要注意的一点
  15. Python 构建方便的函数调用
  16. SQL Server拾遗
  17. 火焰图定位dbproxy问题
  18. 什么是mysql的事务和实现
  19. POJ 2773 Happy 2006(容斥原理+二分)
  20. 蓝牙nrf52832的架构和开发(转载)

热门文章

  1. MySQL数据库添加一个字段
  2. art.dialog 与 ajax 异步请求
  3. windows server 2008 R2 忘记administrator密码
  4. keilkill.bat
  5. 离开ACM了,总结一下
  6. 【web安全】第四弹:防火墙技术笔记
  7. (九)groupByKey,reduceByKey,sortByKey算子-Java&Python版Spark
  8. Word2003中如何使封面和目录中不插入页码
  9. bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 曼哈顿生成树
  10. Android使用Dom解析xml