异常机制学习笔记
2016-06-06 21:22
190 查看
一、java遇到异常两种处理方式
* --》不能处理的交给上级
* 1)throws:自己问题,自己不处理,交给方法上级处理
* --》能处理的,自己处理
* 2)try cacth:自己问题,自己处理
* 语法:
* try{
* //多句被监听的代码1
* //多句被监听的代码2
* //多句被监听的代码3
* }[catch(处理的异常类1 变量名 ){
*
* }catch(处理的异常类2 变量名 ){
*
* }...
* ]||[
* finally{
*
* }
* ]
*
* 该结构特点
* 1)try有且只有1个
* 2)catch和finally至少有其中1个结构
* 3)catch:0至多个
* 4)finally:0至1个
*
*相关关键字含义
*try:(监听异常)监听可能会出现异常(问题)的多句代码。
* 1)如果有监听的代码有异常发生。
* a)有对应的catch,把异常交给对应的catch,异常代码之后不执行,把异常对象引用赋值给catch的变量,
*再执行对应catch所有的代码,然后离开trycath结构。
* b)没有有对应的catch:异常代码之后不执行,把异常抛出给上级处理。
* 2)如果有监听的代码没有有异常发生。
* 1)执行玩所有的try的代码,然后离开trycatch结构,执行之后的代码。
*catch:(处理异常):对应异常的处理代码,只有遇到对应的异常的时候才会执行。
二、Throwable(异常)的概念:程序非正常执行(运行时)的情况
a) Exception(例外):业务处理代码层面的时候发生的问题,这种问题可以解决,可以通过异常机制进行处理
b) Error(错误):业务处理jvm层面(运行环境)发生的问题,这种问题不能或不应该通过异常机制进行处理
java程序在执行的过程中也会遇到很多问题--》Throwable
程序执行为什么会遇到问题?
--》程序执行过程中,不能正常表示结果的时候-就会发生异常(问题)。
程序遇到的问题怎么产生的?
1)表达式执行发生异常(问题)
例如:a/b;当b为0-发生除数不能为0的异常(问题)
2)方法执行发生异常(问题)
例如:str.charAt(idx);当idx不是0到len-1就会发生异常(问题)
3)手动产生异常-throw(自找麻烦-该代码自己产生一个异常)
throw 异常(Exception)对象(包装了问题的信息)
例如:设置年龄时,获取的参数是负数,产生异常。
*
* 注意点
* 1)程序发生了Exception我们应该去处理,处理之后可以执行异常后面的代码。
* 2)如果没有处理,异常就会从发生的位置一致顺着方法的调用者,往上抛
* 直到抛给jvm处理 ,两件事
* a)打印异常出错的详细信息 :1)异常类名 2)异常描述 3)异常位置
* b)停止当前发生异常的线程(程序)
三、自定义异常类
*
* 1)类名 :问题描述+Exception
* 2)继承Exception或RuntimeException
* 3)两个构造器
* a)空构造
* b)设置描述信息的构造器
*
* 遇到问题(异常)的处理方式
* 1)trycatch:自己处理
* 2)throws :抛给上级(方法的调用者)处理
*
* Exception和RuntimeException对比
* 1)Exception可以处理的问题,必须自己选择处理方式
* 2)RuntimeException可以处理的问题,遇到该问题,方法可以【自动抛出异常】
* 可以不需要手动的处理异常。
四、遇到问题(异常)的处理方式->必须处理
* 1)trycatch:自己处理
* 2)throws :抛给上级(方法的调用者)处理
*
* throws:把方法里遇到的异常(所报考的异常)抛给(交给)上级(方法的调用者)处理
* 语法:
* 【访问修饰符】 【static】 返回值类型 方法名(参数列表)throws 报告异常的类1,报告异常的类2...{
*
* }
*
* 注意点
* 1)throws可以跟多个异常类 throws 报告异常的类1,报告异常的类2...
* 2)throws抛出异常可以抛出自己类,或者其父类(建议抛出自己类)
* 3)遇到异常(问题)我们一定要处理,否则编译出错。但是:runtimeException
* 有默认的处理方式--》throws
四、方法的重写的语法要求
* 1)有超类型和子类型结构(继承或实现)
* 2)方法的签名:
* 超类型==子类型
* 3)返回值
* a)基本类型+void
* 超类型==子类型
* b)引用类型
* 超类型>=子类型
* 4)访问修饰符
* 超类型<=子类型
->儿子比父亲更开放
* 5)throws声明的可能出现的异常列表
* 超类型>=子类型
->儿子不能比父亲惹更多的麻烦
* 大于>=
* 1)指的是超类型和子类型里最大的异常的关系
* 2)跟个数无关
* --》不能处理的交给上级
* 1)throws:自己问题,自己不处理,交给方法上级处理
* --》能处理的,自己处理
* 2)try cacth:自己问题,自己处理
* 语法:
* try{
* //多句被监听的代码1
* //多句被监听的代码2
* //多句被监听的代码3
* }[catch(处理的异常类1 变量名 ){
*
* }catch(处理的异常类2 变量名 ){
*
* }...
* ]||[
* finally{
*
* }
* ]
*
* 该结构特点
* 1)try有且只有1个
* 2)catch和finally至少有其中1个结构
* 3)catch:0至多个
* 4)finally:0至1个
*
*相关关键字含义
*try:(监听异常)监听可能会出现异常(问题)的多句代码。
* 1)如果有监听的代码有异常发生。
* a)有对应的catch,把异常交给对应的catch,异常代码之后不执行,把异常对象引用赋值给catch的变量,
*再执行对应catch所有的代码,然后离开trycath结构。
* b)没有有对应的catch:异常代码之后不执行,把异常抛出给上级处理。
* 2)如果有监听的代码没有有异常发生。
* 1)执行玩所有的try的代码,然后离开trycatch结构,执行之后的代码。
*catch:(处理异常):对应异常的处理代码,只有遇到对应的异常的时候才会执行。
二、Throwable(异常)的概念:程序非正常执行(运行时)的情况
a) Exception(例外):业务处理代码层面的时候发生的问题,这种问题可以解决,可以通过异常机制进行处理
b) Error(错误):业务处理jvm层面(运行环境)发生的问题,这种问题不能或不应该通过异常机制进行处理
java程序在执行的过程中也会遇到很多问题--》Throwable
程序执行为什么会遇到问题?
--》程序执行过程中,不能正常表示结果的时候-就会发生异常(问题)。
程序遇到的问题怎么产生的?
1)表达式执行发生异常(问题)
例如:a/b;当b为0-发生除数不能为0的异常(问题)
2)方法执行发生异常(问题)
例如:str.charAt(idx);当idx不是0到len-1就会发生异常(问题)
3)手动产生异常-throw(自找麻烦-该代码自己产生一个异常)
throw 异常(Exception)对象(包装了问题的信息)
例如:设置年龄时,获取的参数是负数,产生异常。
*
* 注意点
* 1)程序发生了Exception我们应该去处理,处理之后可以执行异常后面的代码。
* 2)如果没有处理,异常就会从发生的位置一致顺着方法的调用者,往上抛
* 直到抛给jvm处理 ,两件事
* a)打印异常出错的详细信息 :1)异常类名 2)异常描述 3)异常位置
* b)停止当前发生异常的线程(程序)
三、自定义异常类
*
* 1)类名 :问题描述+Exception
* 2)继承Exception或RuntimeException
* 3)两个构造器
* a)空构造
* b)设置描述信息的构造器
*
* 遇到问题(异常)的处理方式
* 1)trycatch:自己处理
* 2)throws :抛给上级(方法的调用者)处理
*
* Exception和RuntimeException对比
* 1)Exception可以处理的问题,必须自己选择处理方式
* 2)RuntimeException可以处理的问题,遇到该问题,方法可以【自动抛出异常】
* 可以不需要手动的处理异常。
四、遇到问题(异常)的处理方式->必须处理
* 1)trycatch:自己处理
* 2)throws :抛给上级(方法的调用者)处理
*
* throws:把方法里遇到的异常(所报考的异常)抛给(交给)上级(方法的调用者)处理
* 语法:
* 【访问修饰符】 【static】 返回值类型 方法名(参数列表)throws 报告异常的类1,报告异常的类2...{
*
* }
*
* 注意点
* 1)throws可以跟多个异常类 throws 报告异常的类1,报告异常的类2...
* 2)throws抛出异常可以抛出自己类,或者其父类(建议抛出自己类)
* 3)遇到异常(问题)我们一定要处理,否则编译出错。但是:runtimeException
* 有默认的处理方式--》throws
四、方法的重写的语法要求
* 1)有超类型和子类型结构(继承或实现)
* 2)方法的签名:
* 超类型==子类型
* 3)返回值
* a)基本类型+void
* 超类型==子类型
* b)引用类型
* 超类型>=子类型
* 4)访问修饰符
* 超类型<=子类型
->儿子比父亲更开放
* 5)throws声明的可能出现的异常列表
* 超类型>=子类型
->儿子不能比父亲惹更多的麻烦
* 大于>=
* 1)指的是超类型和子类型里最大的异常的关系
* 2)跟个数无关
相关文章推荐
- java那些事情
- 关于python csv文件打开错误:_csv.Error: line contains NULL byte
- xcode UIButton创建、监听按钮点击、自定义按钮 、状态 、内边距
- 数据类型,隐式转换以及json,对象,引用类型,预解析 视频教程
- miniblink修复3D变换的两处渲染Bug
- SlidingMenu侧滑菜单
- [置顶] Java中的逆变与协变
- Codeforces 676C Vasya and String 尺取法
- java连接Sql server 2008步骤
- maven之clean、install命令
- C++连接MYSQL数据库
- 内部类与匿名内部类的概念与使用————Java基础知识
- TCP/IP入门(3) --传输层
- Shell 替换+运算符
- iOS Hit-Testing事件响应链
- 总是在起头可是能怎么办呢 Python数据分析
- C++的标准命名空间使用
- spark之DataFrame 通过反射创建
- sort() 排序函数 入门学习
- 面向对象的程序设计-理解对象