黑马程序员 java学习笔记——异常
来源:互联网 发布:悟空问答 知乎 编辑:程序博客网 时间:2024/05/22 21:23
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
概述
概念:程序运行时期发生的不正常情况由来:问题也是现实生活中的事物,也可以通过Java类进行描述,并封装成对象。其实就是Java对不正常情况进行描述后的对象体现。体系:一种是Error,一种是Exception。由于发现这俩大类中还有很多共性东西,所以又进行了抽取。抽取成了Throwable。
Error:对于严重的异常,java通过Error类进行描述,对于Error一般不编写针对性的代码对其进行处理Exception:对于非严重的,java通过Exception类进行描述,对于Exception可以使用针对性的处理方式进行处理。
异常的处理
异常的处理分两种方式:try..catch和throws抛异常
try...catch异常捕获的三种方式:
try{可能发生异常的代码;}catch(接收捕获异常类的对象 异常类引用变量){处理代码;}try{可能发生异常的代码;}fianlly{一定要执行的语句;(通常用于关闭资源)}try{可能发生异常的代码;}catch(捕获异常类的对象 异常类引用变量){处理代码;}finally{一定要执行的语句;(通常用于关闭资源)}PS:将必须要运行的代码放入finally代码块中。try...catch异常的示例代码
class Demo{int div(int a,int b){return a/b;}}class ExceptionDemo{public static void main(String[] args){Demo d=new Demo();try{int x=d.div(4,0);System.out.println(x);}catch(Exception e){System.out.println("除零啦!");}System.out.println("over");}}throws异常的示例代码
class Demo{int div(int a,int b) throws Exception{return a/b;}}class ExceptionDemo{public static void main(String[] args) throws Exception{Demo d=new Demo();int x=d.div(4,0);System.out.println(x);System.out.println("over");}}throws和throw的区别
1、throws使用在函数上,throw使用在函数内
2、throws后面跟的是异常类,可以跟多个,用逗号隔开;throw后跟的是异常对象
RuntimeException
1、如果在函数中抛出该异常,函数上可以不用声明,编译一样通过;
2、如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
PS:该异常之所以不用在函数上声明,是因为不需要让调用者处理。当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后由程序员对代码进行修正。
自定义异常时,如果该异常的发生无法再继续运算,就让自定义异常继承 RuntimeException。
练习
关于毕老师用电脑上课的异常处理
示例代码如下:class LanPingException extends Exception{LanPingException(String message){super(message);}}class MaoYanException extends Exception{MaoYanException(String message){super(message);}}class Computer{private int state=1;public void run() throws LanPingException,MaoYanException{if(state==2)throw new LanPingException("蓝屏了");if(state==3)throw new MaoYanException("冒烟了");System.out.println("电脑运行");}public void reset(){System.out.println("电脑重启");}}class NoPlanException extends Exception{NoPlanException(String msg){super(msg);}}class Teacher{private String name;private Computer cmpt;Teacher(String name){this.name=name;cmpt=new Computer();}public void prelect() throws NoPlanException{try{cmpt.run()}catch(LanPingException e){cmpt.reset();}catch(MaoYanException e){test();throw new NoPlanException("课时无法继续"+e.getMessage());}System.out.println("讲课");}public void test(){System.out.println("练习");}}public class Demo{public static void main(String[] args){Teacher t=new Teacher("毕老师");try{t.prelect();}catch(NoPlanException e){System.out.println(e.toString());System.out.println("换老师,或者放假");}}}---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
0 0
- 黑马程序员 JAVA学习笔记 ——— 异常
- 黑马程序员——Java异常处理学习笔记
- 黑马程序员——学习笔记07.Java异常机制
- 黑马程序员 java学习笔记——异常
- 黑马程序员——Java学习笔记 异常处理
- 黑马程序员——java学习笔记--异常
- 黑马程序员——异常学习笔记
- 【黑马程序员】 java笔记——异常
- Java异常学习——黑马程序员
- 黑马程序员java学习—异常
- 黑马程序员-java异常学习笔记
- 黑马程序员--java异常学习笔记
- 黑马程序员--java异常学习笔记
- 黑马程序员-学习笔记java基础-异常
- 黑马程序员 java学习笔记 Day1:异常
- 【黑马程序员】Java学习笔记--异常
- 黑马程序员--学习笔记--Java异常处理
- 黑马程序员—java异常
- 嵌入式Linux编译器GCC的使用
- Protocol Buffers C++ 入门
- 【hadoop之翊】——windows 7使用eclipse下hadoop应用开发环境搭建
- getUserMedia/WebRTC助力跨浏览器摄像头捕获影像
- 调用系统通讯录
- 黑马程序员 java学习笔记——异常
- 如何从window连接家中内网中的ubuntu
- 万能makefile
- google protocol buffers 开发者指南
- 【SPOJ】839 Optimal Marks 最小割
- 多核编程杂谈
- 真机测试或打包测试Xcode设置
- android获取版本信息、屏幕信息和设备编号
- 台湾新闻