Java基础知识学习——异常处理

知识点汇总

异常:Error:Java虚拟机无法解决的严重问题,JVM系统内部错误,资源耗尽问题;Exception:编译时会出现错误异常。
异常的体系结构:
java.lang.Throwable->①java.lang.Error一般不编写针对性的代码进行处理
②java.lang.Exception可以进行异常的处理
1.编译时异常;2.运行时异常RuntimeException
异常处理的方式一:

try-catch-finally
格式:try{
  //有可能出现异常的代码
}catch(异常类型  变量名){
    //处理异常方式
 }.......
finally{
     //必然会执行的代码
}

常用的异常对象处理的方式:
①String getMessage()(sout(e.getMessage()))
②printStackTrace() e.printStackTrace()
finally是可选的,finally中是声明的一定会执行的代码,即使catch中又出现了异常;像数据库连接、输入输出流、网络编程socket等资源,JVM是不能自动的回收的,;需要手动的进行资源释放,此时的资源释放就需要声明在finally中。
方式二:hrows-异常类型
子类重写方法的异常类型不大于父类被重写方法的异常类型
手动抛出异常:throw new RuntimeException(message)和Exception(message)
方式三. 自定义异常类
1继承于现有的异常结构:RuntimeException、Exception
2提供全局常量:serialVersionUID
3提供重载的构造器
注意点:
Java源程序——Javac.exe——字节码文件——Java.exe——在内存中加载、运行类
编译时异常:在执行javac.exe命令时可能会出现的异常
运行时异常:在执行java.exe命令时可能会出现的异常
代码示例:

public class ErrorTest {
    public static void main(String[] args) {
            //栈溢出异常StackOverflowError
        main(args);
            //堆溢出异常OutOfMemoryError
       Integer[] integers=new Integer[1024*1024*1024];
        //空指针异常
        String[] strings=null;
        System.out.println(strings[0]);
        //数组角标越界
        int[] ints=new int[3];
        System.out.println(ints[3]);
        //类型转换异常
            Object object=new Date();
            String string=(String)object;
            //数值转换异常
        String s="aaa";
        int number=Integer.parseInt(s);
        //算数异常
        int a=10,b=0;
        System.out.println(a/b);
        try{
            System.out.println("算数异常"+a/b);
        }catch(ArithmeticException e){
            e.printStackTrace();
        }finally {
            System.out.println("一定会执行的代码区");
        }
    }
    public void methods() throws IOException,FileNotFoundException {
        System.out.println("抛出异常例子");
    }
}
class MyException extends RuntimeException{
    static  final long serialVersionUID=-1234434532545423534L;
    public MyException(){
            //空参构造器
    }
    public MyException(String msg){
        //继承父类的异常信息
        super(msg);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值