JAVA学习第三弹(异常)
来源:互联网 发布:饼干网络意思 编辑:程序博客网 时间:2024/06/03 11:40
- 异常的分类
- 异常的基本样式
- 异常捕获和抛出
1.异常的分类
如上图所示,Throwable主要分为两类,第一类就是Error(就是我们所说的错误,这里不做过多的介绍),第二类就是Exception(我们所说的异常)。
由RuntimeException派生的主要异常:
- 算数运算异常(ArithmeticException):整数除零时,抛出。
- 数组越界异常(ArrayIndexOutofBoundsofException)
- 数组存储异常(ArrayStoreException):对数组中存放费数组声明类型对象时抛出。
- 访问空指针(NullPointException)
由IOException派生的主要异常:
- 文件已结束异常(EOFException)
- 文件未找到异常(FileNotFoundException)
2.异常的基本样式
public void method(){ try { //可能产生异常的语句或者方法 } catch (Exception e) { // 对异常的处理 e.printStackTrace(); } finally{ //无论是否抛出异常都要执行的代码块 } }
3.异常的捕获和抛出
关于这个问题,异常的捕获,主要是捕获try{}中的异常信息,比如下面这个例子:
try { throw new Exception(); // 抛出异常 } catch (Exception e) { //捕获Exception类型的异常 e.printStackTrace(); //将异常信息显示出来 } finally{ System.out.println("zhanghanlun");// 无论有没有异常都要执行的语句 }
其运行结果为:
异常的抛出,就是异常会逐级上溯,直到找到处理他的代码为止。在异常的抛出中,有throw和throws两种抛出,各有各的不同。
- throw
使用throw语句时,必须声明一个异常对象,这个对象是Throwable派生类的对象。例如:
throw new Exception(); //新创建了一个Exceptiony异常。
如果一个方法可以导致一个异常但不处理它,它必须在方法声明时包含一个throws子句以使方法调用者可以保护他们自己而不发生异常。
public static void main(String[] args) { try { String s=getInput(); } catch (Exception e) { e.printStackTrace(); } finally{ System.out.println("zhanghanlun"); }} static String getInput() throws IOException{ //如果此处不用throws则 char[]buffer=new char[10]; int count=0; boolean flag=true; while(flag){ buffer[count]=(char)System.in.read();//承接上一处注释,此处要用try/catch语句包围。 if(buffer[count]=='\n'){ flag=false; }else{ count++; } } return new String(buffer); }
0 0
- JAVA学习第三弹(异常)
- 《Robust java》学习-第三章高级异常处理概念
- Java入门第三季(一、异常与异常处理)
- java学习(第三课)
- java应用中,调用第三方api如何处理异常(系统异常、操作异常等等)
- Java学习笔记(异常)
- Java学习(六) 异常
- JAVA异常学习(二)
- Java异常学习(一)
- Java 学习(学习历程)第三章
- Java学习第三日
- java学习第三章
- Java学习第三课
- Java学习笔记----(Java学习第三、四周)
- JAVA学习笔记之(异常与异常处理)
- Java入门第三季-1.异常与异常处理
- JAVA学习笔记(一)---异常处理
- java异常学习二(总结)
- 算法之选择排序
- Glide的IllegalArgumentException You cannot start a load for a destroy Activity
- 关于单例模式的DoubleCheckLock同步的思考
- 创建数据库连接
- PAT1012. The Best Rank (25)
- JAVA学习第三弹(异常)
- Lambda表达式
- URL部分功能代码实现
- Mysql 修改允许保存文件大小
- Java_内存管理和继承
- Python 学习笔记 (C++与Python的不同)
- RTMP协议
- MFC does not support WINVER less than 0x0501 解决方案
- 案例------用户登录记住密码