异常小总结

异常类的体系结构如下:

Throwable

|-Error

|-Exception

  |-IoExcetion

  |-SQLException

  |-RuntimeException

*派生与Error与RuntimeException(运行时异常)的异常叫未检查异常,不用程序员处理,直接虚拟机会进行处理,这也就是说程序本身的错误

其他的异常叫做已检查异常,必须由程序员进行处理

常见的异常如下:

  类型转化异常  ClassCastException

  数组越界异常  ArrayIndexOutOfBoundsException

  空指针异常   NullPointerException

以上都是派生与RuntimeException

  文件尾读取数据异常      EOFException

  打开不存在的文件异常     FileNotFoundException

  查找不存在的Class对象异常   ClassNotFoundException  

*使用异常的4种情况:

  调用一个抛出已检查异常的方法

  程序运行过程中发生错误

  程序出现错误

  JAVA虚拟机和运行库出现内部错误

*throw与throws区别

throw用于抛出异常,throws用于声明异常,即在方法体后注明可能抛出的异常

*try catch字句

  *可以捕获多个异常

    try{}

    catch(e){}

    catch(e){}

    ....

  *可以合并异常

    try{}

    catch(e1 | e2){}  

  *catch子句可以再次抛出异常

    方式:一般把原始异常当作再次抛出异常的原因

    代码举例:

...
catch(e)
{
    Throwable se = new ServletException("data error");
    se.initCause(e);
    throw se;
}

    当捕获异常se后,可以利用如下代码获得原始异常

Throwable e = se.getCause();

*finaly子句

  当利用try catch抛出异常后,剩余代码不会执行,会停止程序,键入在程序终止之前会申请一些本地资源还未关闭,若catch并未捕获到这个异常,这样对这些资源还欠缺处理,于是引入了finally子句。

  执行时刻:当try抛出异常,但是catch没有捕获异常,此时finally子句执行。

*带资源的try语句

  使用条件:所使用的资源类实现了一个AutoCloseable接口类,其中有个方法void close() throws Exception,这是JDK7中的特性

  形式:代码举例

try(Scanner in = new Scanner(new FileInputStream("/....")));
{
    while(in.hasNext())
        ....
}

  此中使用形式,确保发生任何情况发生异常都会被关闭

时间: 2024-12-15 01:43:17

异常小总结的相关文章

C#异常小知识

C#中异常捕获相信大家都很熟悉,经常使用的异常捕获有: 1. try{.....} catch (Exception ex) {throw ex;} 2. try{.....} catch (Exception) {throw;} 3. try{.....} catch (Exception ex) {throw new Exception("异常描述",ex);} 相信对于这3种写法大家都很熟悉,但对于这3种之间的细微区别不知大家是否清楚.今天我就给大家分享一下他们之间的区别以及哪种

异常小案例

题目要求:对年龄赋值进行判断,不在1-100抛出异常并处理 1 package demo2; 2 3 /** 4 * 人类,对年龄赋值进行判断,不在1-100抛出异常并处理 5 * @author 6 * 7 */ 8 public class Person { 9 private int age; 10 11 public int getAge() { 12 return age; 13 } 14 15 //异常声明 16 public void setAge(int age) throws

异常小案例4

1 package demo2; 2 3 import java.util.InputMismatchException; 4 import java.util.Scanner; 5 6 /** 7 * 根据编号输出课程名称,输入错误处理异常并提示 8 * @author 9 * 10 */ 11 public class Course { 12 public static void main(String[] args) { 13 Scanner input=new Scanner(Syste

小程序异常监控及错误处理

小程序异常监控收集 web端与小程序错误监控差异 在 Web 端监测的是页面完整的 url,而小程序端监测的是路由地址: 小程序页面属于app内部的页面,使用时已全部加载完毕,因此监控页面性能时不统计页面加载时长等信息,更多的是对页面内请求.资源请求和用户行为的监控: 由于微信官方和小程序代码的要求,集成方式对比 Web 端会相对严格一些. 小程序需要监控的数据 JavaScript异常监控:不论是 Web 端还是小程序端,对 JavaScript 异常的监控都是必要的: 页面内请求监控:对于小

[转]菜鸟程序员之Asp.net MVC Session过期异常的处理

本文转自:http://www.cnblogs.com/JustRun1983/p/3377652.html 小赵是刚毕业的计算机专业方面的大学生,4年的大学时间里面,他读过了很多编程方面的数据,也动手也了很多代码.现在毕业了,他如愿的加入了T公司,开始了自己的程序员生涯.他信心满满,相信自己4年的学习到的东西,一定能够在工作派上用场,帮助自己很快的胜任现在的工作. 阅读目录: 一.Session引发的异常 二.使用MVC中的Filter来对Session进行验证 三.对于Ajax请求的中,Se

菜鸟程序员之Asp.net MVC Session过期异常的处理

一, Session引发的异常 小赵刚进公司,就参与到了一个实际的项目中了,项目使用的是Asp.net MVC.花了大概2个周的时间,小赵就完成了所有功能,提交给QA测试了. 过了一天,QA发回了测试结果,小赵过了一遍,发现原来自己做的东西,里面问题这么多. 其中一个bug是这样的: 使用Firefox登录进入系统后,再打开一个Tab,进入系统页面,点击logout. 在回到前一个tab页面,点击Save按钮,出现了js错误.这个时候应当将用户转到登陆页. 小赵看到这个bug,有些目瞪口呆,没想

ng机器学习视频笔记(十三) ——异常检测与高斯密度估计

ng机器学习视频笔记(十三) --异常检测与高斯密度估计 (转载请附上本文链接--linhxx) 一.概述 异常检测(anomaly detection),主要用于检查对于某些场景下,是否存在异常内容.异常操作.异常状态等.异常检测,用到了一个密度估计算法(density estimation)--高斯分布(Gaussian distribution),又称正态分布(normal distribution). 该算法只用到了样本的特征值,不需要分类标签,故该算法是无监督学习算法 主要内容是,对于

Python3 与 C# 面向对象之~异常相关

周末多码文,昨天晚上一篇,今天再来一篇: 在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode/master 在线预览:http://github.lesschina.com/python/base/oop/3.异常相关.html 代码裤子:https://github.com/lotapp/BaseCode/tree/master/python/2.OOP/4.Exception 1.异常¶ 1.1 try...except¶ 又到了开新课的时候了,小

百度小程序性能优化

引子: 一个指标引发的血案 https://www.cnblogs.com/Sherlock09/p/11726885.html 性能优化 进入移动互联网时代,传统Web开发技术(HTML,CSS,JavaScript)风光不再,客户端技术(iOS以及Android)依靠良好的体验重新崛起.但是客户端技术的开发效率始终无法与Web技术抗衡,同时会受到诸多平台层面的限制.在这一大背景下,小程序独特的架构诞生了,它将Web前端技术与传统的客户端技术结合在一起,其目的是在开发效率上超过传统的客户端技术