java——异常处理

来源:互联网 发布:光环大数据 视频下载 编辑:程序博客网 时间:2024/06/03 23:01

1.异常处理
* Throwable(异常处理的父类)
* Error 系统崩溃 或 数据库崩溃(跟代码没有关系)
* Exception 异常(是更代码有关系的)
* RuntimeException 运行异常
*
* 出现异常 系统如何解决(谁来解决)
* 2.解决的方式
* 1.main函数自己解决
* 2.把问题抛给上级解决(谁调用的main 谁去解决)
* 交给JVM虚拟机去解决
* JVM虚拟机如何解决?报错
* 打印错误信息 错误发生在什么类的什么位置

public class Demo01 {    public static void main(String[] args) {        /*         * 需求:         * 1.空指针异常         * 2.角标越界异常         * 3.算数异常         */        int[] array = {1,2,3,4,5};        // 角标越界异常//      System.out.println(array[5]);        // 算数异常//      System.out.println(10/0);        // 空指针异常(访问一块不属于你内存的区域)        array = null;        System.out.println(array[0]);        }}

3.解决异常方式
* try…catch…finally
* try:尝试 指测试这个异常
* catch:捕获 指捕获这个异常
* finally 指异常结束后做的事
*
* 捕获异常流程:
* 1.发生异常
* 2.根据发生的异常 产生对应的异常对象
* 3.这个异常对象会返回给调用者
* 4.如果调用者处理了这个异常(添加try…catch)
* 异常对象会跟catch进行匹配,匹配上执行catch中语句
* 程序会继续运行
* 5.如果调用者没有处理这个异常 默认交给JVM去处理
* 根据产生异常对象 打印对应错误信息
* 程序停止

public class Demo02 {    public static void main(String[] args) {        TestException test = new TestException();        try {            // 可能发生异常的代码            int num  = test.fun(10, 0);            // 这块返回了异常对象            // new ArithmeticException("/ by zero");            System.out.println(num);        }catch(ArithmeticException e){            //捕获异常 该怎么办            // catch 如何就能捕获异常            // ArithmeticException e = new ArithmeticException("/ by zero");            // catch会匹配这个异常对象            // 如果匹配上了就执行catch中的语句            // 捕获异常后 程序会继续执行            System.out.println("吃药了没?除数为0了");        }        System.out.println("你猜我执行了吗?");    }}class TestException{    // 报异常方法    public int fun(int a, int b) {        /*         * 这里发生了算数异常         * 相当于产生了一个异常对象         * new ArithmeticException("/ by zero");         * 一旦发生异常 系统会产生一个对应异常对象         * 发生异常后 谁调用我 这个异常就给谁         * 处理不了 就给JVM虚拟机去处理         * JVM默认处理方法:         * 打印错误信息(根据异常对象的类型 去打印对应错误信息)         * 打印完 会结束你的程序         */        return a / b;    }}

4.finally
* 记住:不管你异常有没有发生 有没有被匹配到 都会执行
*
* finally有什么作用?
* 可以关闭系统资源 避免资源的浪费
* (例如 关闭输入流 和 关闭数据库)

public class Demo04 {    public static void main(String[] args) {        try {            System.out.println(10/1);            return;        } catch (ArithmeticException e) {            System.out.println("除0 了");        }finally {            System.out.println("你看我执行了吗?");        }        System.out.println("我是下面的语句");    }}

构造方法
* File(String pathname)
* File(String parent, String child)
* File(File parent, String child)

public class Demo09 {    public static void main(String[] args) {        // 使用构造方法 创建一个文件路径        // 使用的相对路径 (参照物是你的工程)        File file1 = new File("src/xxf.txt");        // 查看文件是否存在        System.out.println(file1.exists());        String parent = " /Users/lanou/eclipse-workspace/SH-day20/src/com/lanou3g";        String child = "Demo09.java";        // 使用父子路径创建 file对象        File file2 = new File(parent, child);        System.out.println(file2.exists());    }}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 jingju 京戏名段欣赏 京戏名段 琉璃满京华 京华烟云 满京华 新京华烟云 冠盖满京华 京华郡主 京华 月满京华 京华祸福录 满京华云朗 张京华 娇冠京华 扬州京华城 江南京华梦 京华城 京华园 京华大学 京华网 京华时报 京华集团 京华中学 京华学校 京华广场 京华医院 京华布鞋 京华园景区 京华茶叶 京华酒业 绿京华 京华派克 京华快餐 京华管业 京华烟 满江红小住京华 琉璃满京华衣布衣出 嫡女京华医行天下 京华烟云顾轻舟 琉璃满京华免费全文阅读