java的异常

    xiaoxiao2021-03-25  44

    异常

    异常就是Java程序在运行过程中出现的错误。

    异常的分类

    Error (服务器挂了,数据库挂了)Exception

    Exception

    继承体系:

    Throwable ErrorException RuntimeException

    异常的处理方式

    1,自己将该问题处理,然后继续运行( try…catch….finally ).(如果处理异常后还需要执行其他语句的,则用这种方法.)

    2,自己没处理,交给调用者处理,也叫往上抛 throws.(这种处理方式如果出现异常时,会执行处理异常并停止运行,也就是说出现异常后面的语句不会继续运行的了.)

    Java中的异常被分为两大类:编译时异常和运行时异常。

    编译时异常

    Java程序必须显示处理,否则程序就会发生错误,无法通过编译

    运行时异常

    无需显示处理,也可以和编译时异常一样处理

    异常中常见的方法

    Throwable的几个常见方法

    a:getMessage() * 获取异常信息,返回字符串。b:toString() 获取异常类名和异常信息,返回字符串。c:printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。

    异常类面试题

    throws和throw的区别

    a:throws 用在方法声明后面,跟的是异常类名可以跟多个异常类名,用逗号隔开表示抛出异常,由该方法的调用者来处理b:throw 用在方法体内,跟的是异常对象名只能抛出一个异常对象名表示抛出异常,由方法体内的语句处理

    举个栗子:

    package com.zero.mm; public class MM { private String name; private int size; public MM() { super(); } public MM(String name, int size) { super(); this.name = name; this.size = size; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } @Override public String toString() { return "MM [name=" + name + ", size=" + size + "]"; } public void makeMyGirlFriend() throws Exception{ if(size > 42) System.out.println(name+" is "+"my"+" girl"); else throw new Exception("you are not Suitable"); } //如果抛的是运行时异常的话是不用再方法上声明的. // public void makeMyGirlFriend(){ // if(size > 42) // System.out.println(name+" is "+"my"+" girl"); // else // throw new RuntimeException("you are not Suitable"); // } }

    finally 关键字的面试题

    面试题1

    final,finally和finalize的区别 其实他们样子很像,当用处一点关系都没有,压根是面试官显摆的. final—–可以修饰类,方法,变量,由于是最终的意思,所以该类不能被继承,该方法不能被重写,该变量只能赋值一次.

    finally—-是try 语句中的一个语句题,不能单独使用,用来释放资源的

    finalize— 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。(Object 类中的一个方法.)

    面试题2

    如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后。(其实是先将结果给return ,然后检查是否有 finally 的语句,就执行finally 中的语句体,最后彻底返回 .)还有一点是切记不要在finally 语句中return 数据.

    举个例子

    /* 最后返回的结果是 30 */ public static int getSize() { int size = 10; try { size = 20; int i = 100 /0; return size; } catch (Exception e) { size = 30; System.out.println("异常了"); return size; } finally { size = 40; // return size; } }
    转载请注明原文地址: https://ju.6miu.com/read-300063.html

    最新回复(0)