A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zjj5669436182 中级黑马   /  2017-12-16 21:31  /  1531 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

异常和递归
作者:一衡
今天主要学习了异常和异常的处理方式和递归。
一、异常体系
Java代码在运行时期发生的问题就是异常。
异常的体系结构:
                        Throwable(最顶层)
                                        Error:出现的不能够处理的严重问题
                                        Exception:可以处理的问题
Exception有继承关系,它的父类是ThrowableThrowableJava 语言中所有错误或异常的超类,即祖宗类。
二、Exception
Exception是异常的根类是一个具体类。
Throwable类,异常Exception平级的有一个Error,它是Throwable的子类,它用来表示java程序中可能会产生的严重错误。解决办法只有一个,修改代码避免Error错误的产生。
在异常Exception类中,有一个子类要特殊说明一下,RuntimeException子类,RuntimeException及其它的子类只能在Java程序运行过程中出现。
三、异常处理。
1JVM的默认异常处理。
如果出现异常我们没有处理,jvm会帮我们进行处理,他会把异常的类型,原因还有位置显示在命令行并且还终止了程序,异常后面的代码将不在执行。
2、try...catch的方式异常处理(捕获)。
try {
        //需要被检测的语句。
}
catch(异常类 变量) { //参数。
        //异常的处理语句。
}
finally {
        //一定会被执行的语句。主要用于清理垃圾和释放内存
}
A、可以有多个catch语句。就可以进行多个异常的处理
其中catch异常书写Exception e时可以表示任何运行异常
B、多个catch之间可以有子父类
平级之间没有顺序关系
    如果有子父类,父类异常必须放在后面
3、throws方式处理异常(异常抛出)
格式:
   权限修饰符 返回值类型  方法名(形参列表) throws 异常类型1,异常类型2.{}  
String getMessage()    返回此 throwable 的详细消息字符串
String toString()        返回此 throwable 的简短描述
void printStackTrace()   打印异常的堆栈的跟踪信息
4、编译时异常&运行时异常
A: 编译时期异常:Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理
B:RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.
运行时期异常的特点:
方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常
运行时期异常一旦发生,需要程序人员修改源代码.
5、自定义异常
如何自定义一个异常类呢?
        非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可。
三、递归
1、递归,指在当前方法内调用自己的这种现象
public void method(){
        System.out.println(“递归的演示”);
        //在当前方法内调用自己
        method();
}
递归需要注意1、一定要有出口(内存溢出)
2、递归次数不宜过多(内存溢出)
2、斐波纳挈数列
代码表示
Public static int getNumber(int x){
if(x ==0){
return 0
}
if(x ==1 && x==2){
return 1 ;
}else {
return getNumber(x-1)+getNumber(x-2);
}
}

5 个回复

倒序浏览


回复 使用道具 举报
666666666666666666666666
回复 使用道具 举报
加油,继续努力!
回复 使用道具 举报
厉害了
回复 使用道具 举报
不错不错    杠杠的   加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马