Ctrl+O在java源码里查找
printStackTrace
平死打可催死
异常和位置
getMessage()
給特么C级
原因
出现错误就创建对象
异常包含了错误的类型,愿意以及位置
异常的体系结构:
Throwable(最顶层)
Error:出现不能处理的严重问题
Exception:可以处理的问题
Jvm处理异常的方式
如果出现异常我们没有处理,jvm会帮我们进行处理,他会把异常的类型,原因还有位置显示在命令行并且还终止了程序,异常后面的代码不在执行.
·异常处理的方式:
o捕获处理
·try…catch语句
try{
有可能出错的代码
*出现了异常就创建对象
}catch(异常对象){
*代码出现异常运行
*处理异常
}
o抛出去
·当我们不想处理异常,或者无法解决异常,就抛出异常
谁调用方法谁处理异常
·如何处理多个异常
o可以使用多个try.. .catch语句
o使用一个try多个catch
o多个catch之间可以有子父类关系,但是必须放在子类后面
o平级之间没有顺序关系
·Throwable
oString
getMessage();原因
oStringtoString();类型和原因
ovoid printStackTrace();类型原因和位置
·finally
o格式:
try{
}catch{
}finally{
不管程序怎么走,都会执行这里
}
o快捷键:
右击-->Surround With -->Try/catch block
·异常的分类
o运行时异常
·RuntimeException的子类就是运行时异常,在编译时期可以选择处理或者不处理
o编译时异常
·Exception的子类,非RuntimeException的子类
·在编译时,必须处理
·自定义异常
othrows:处理异常的一种方式,把异常抛出,由调用者来处理
othrow:制造异常的方式,并且结束方法
o如何定义:
·写一个类去继承Exception或者RuntimeException,如何实现多个构造即可
·阶乘
5!=5*4*3*2*1;
5!=5*(5-1)!
4!=4*(4-1)!
3=3*(3-1)!
o递归:
·把打问题折成很多的小问题.
o注意事项:
·递归一定要有出口,内存溢出
·递归次数不宜过多,内存溢出
ze:1������@