Java 异常处理笔记
Java程序运行过程中所发生的异常事件可分为两类:
public class ExceptionTest01{
public static void main(String[] args) {
String friends[]={"lisa","bily","kessy"};
for(int i=0;i<5;i++) {
System.out.println(friends[i]);
}
System.out.println("\nthis is the end");
}
}

public class ExceptionTest02 {
public static void main(String[] args){
String user[] = {"lilei","lucy","lisa"};
try{
for(int i=0; i<5; i++) {
System.out.println(user[i]);
}
}catch(java.lang.ArrayIndexOutOfBoundsException e){
System.out.println("异常:" + e.getMessage());
}
System.out.println("程序结束!");
}
}



异常处理块的一般形式
try{
// 要监控错误的代码块
methodGeneratingException();
} catch (Exception e) {
// Exception e 的异常处理程序
} finally{
// 在 try 结束前要执行的代码块
cleanup();
}

常见 异常类
捕获异常
捕获异常是通过try-catch-finally语句实现的。
try{
...... //可能产生异常的代码
}catch( ExceptionName1 e ){
...... //当产生ExceptionName1型异常时的处置措施
}catch( ExceptionName2 e ){
...... //当产生ExceptionName2型异常时的处置措施
} {finally{
...... //无条件执行的语句
}
}
捕获异常的第一步是用try{…}语句块选定捕获异常的范围。
在catch语句块中是对异常对象进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。与其它对象一样,可以访问一个异常对象的成员变量或调用它的方法。
try { …… }
catch(ClassCastException ex){ …… }
catch(NumberFormatException ex){ …… }
catch(Exception ex){ …… } // 此句必须放在最后!
try {
startFaucet();
waterLawn();
}
catch (BrokenPipeException e){
logProblem();
}
finally {
stopFaucet();
}
声明抛弃异常
public void readFile(String file) throws IOException {
……
// 读文件的操作可能产生IOException类型的异常
FileInputStream fis = new FileInputStream(file);
..……
}
重写方法声明抛弃异常原则
public class A {
public void methodA() throws IOException {
……
}
}
public class B1 extends TestA {
public void methodA() throws FileNotFoundException {
……
}
}
public class B2 extends TestA {
public void methodA() throws Exception {
……
}
}
人工抛出异常
IOException e =new IOException();
throw e;
throw new String("want to throw");
class MyException extends Exception {
private int idnumber;
public MyException(String message, int id) {
super(message);
this.idnumber = id;
}
public int getId() {
return idnumber;
}
}
用户自定义异常类
public class ExceptionTest05{
public void regist(int num) throws MyException {
if (num < 0) {
throw new MyException("人数为负值,不合理",3);
}
System.out.println("登记人数" + num);
}
public void manager() {
try {
regist(100);
} catch (MyException e) {
System.out.print("登记失败,出错种类"+e.getId()));
}
System.out.print("本次登记操作结束");
}
public static void main(String args[]){
ExceptionTest05 t = new ExceptionTest05();
t.manager();
}
}
Java 异常处理笔记的更多相关文章
- Java学习笔记(五):异常处理
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.而在我们的程序中需要对这些异常进行捕获和处理来避免程序卡死等情况. Ja ...
- Java面向对象笔记 • 【第5章 异常处理】
全部章节 >>>> 本章目录 5.1 异常概述 5.1.1 程序中的异常 5.1.2 异常分类 5.1.3 实践练习 5.2 try-catch处理异常 5.2.2 使用f ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 瘋耔java语言笔记
一◐ java概述 1.1 ...
- java异常处理的设计
有一句这样话:一个衡量Java设计师水平和开发团队纪律性的好方法就是读读他们应用程序里的异常处理代码. 本文主要讨论开发Java程序时,如何设计异常处理的代码,如何时抛异常,捕获到了怎么处理,而不是讲 ...
- 20145330第五周《Java学习笔记》
20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...
- Thinking In Java读书笔记--对象导论
Thinking In Java读书笔记--对象导论[对象]服务提供者==>将对象看做一个服务提供者[程序员分类][类创造者]/[客户端程序员] [访问控制存在的原因?][1]客户端程序员无法触 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- Java异常处理总结
题记:本文为工作十年回顾总结系列之Java语言之异常处理篇,主要内容为<Thinking in Java >第四版和<Effective Java>第二版的阅读笔记,网上流传的 ...
随机推荐
- 开涛spring3(4.2) - 资源 之 4.2 内置Resource实现
4.2 内置Resource实现 4.2.1 ByteArrayResource ByteArrayResource代表byte[]数组资源,对于“getInputStream”操作将返回一个By ...
- 每R一点:各种画地图,全是知识点,90%人不知道!(转)
R语言绘制地图,在数据分析中经常能够用到,并且会达到非常好的展示效果,本节以例子形式,介绍如何使用R语言工具,画出理想的地图. 本节例子在 R version 2.15.3版本下运行顺畅,其他版本待定 ...
- 挂载mount
mount 1 挂载mount 基本概念 挂载:将额外文件系统与根文件系统现存的目录建立起关联关系,进而使得此目录做为其它文件访问入库的行为 卸载:为解除关联关系的过程 注意:挂载点下原有的文件在挂载 ...
- stat命令
- Assert与内存泄漏
以前知道C/C++有assert之后,我想知道assert会不会造成内存泄漏,于是我做了一个测试: #include <iostream> #include <fstream> ...
- js实现防盗图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- phpcms列表页内容如何替换?
以aboutus.html页面为例. 1.将aboutus.html重新命名为list-aboutus.html: 2.在后台页面,在栏目列表中将栏目列表页模板设置为 list-aboutus.htm ...
- DataTable数据导出Excel 并且下载
public string Excel(System.Data.DataTable dt) { //模板的路径 string strUploadPath = HttpContext.Current.S ...
- python 自定义回调函数
回调函数用起来比较爽.特别是在js中,满世界全是回调,那么在python中,怎么来优雅地实现自己的回调函数呢 下面贴一个我写的例子 class BaseHandler(object): def cra ...
- 【开源】做了一个WinForm窗体的投影组件,能够为窗口添加影子效果
最近手头上的项目终于忙得差不多了,想起好久没有更新了的NanUI,再看着每天QQ群未读消息闪烁的标志,突然才发现似乎愧对了群里各位喜爱NanUI的朋友们.于是乎,就想趁这几天有时间,好好的修复一下Na ...