zoukankan      html  css  js  c++  java
  • java学习7捕获异常处理

    Java使用异常来表示错误,并通过try ... catch捕获异常;

    1、Error错误是你的程序无能为力的,也无法捕获的,比如内存耗尽,最终会由JVM进行捕获打印出信息。几乎听天由命。但是老手程序员会遇见到做一些预见处理; 2、运行时错误RuntimeException的异常,如果不手动捕获最终也会交给JVM进行捕获处理,与手动捕获打印的信息差不多。所以最终在程序中呈现出来 3、要老命的CheckException异常,必须手动捕获or throw声明,IDE可以检查出,直接捕获处理即可


    这种捕获后不处理的方式是非常不好的,即使真的什么也做不了,也要先把异常记录下来:

    static byte[] toGBK(String s) {

      try { return s.getBytes("GBK"); }

      catch (UnsupportedEncodingException e)
        { // 先记下来再说:
           e.printStackTrace();
        }
    return null;
    }

     在java中,all的可能抛出异常的语句。都可以try...catch捕获。把可能发生的一场的语句放在try{...}中,然后catch捕获对应的Excwption机器子类。

    public static void main(String[] args) {
        try {
            process1();
            process2();
            process3();
        } catch (IOException e) {
            System.out.println(e);
        } catch (NumberFormatException e) {
            System.out.println(e);
        }finally{ //finally语句不是必须的,1、可写可不写;2、总是最后执行 
      System.out.println("END");
    } }

    存在多个catch的时候,catch的顺序非常重要:子类必须写在前面

    如果没有发生异常,就正常执行try { ... }语句块,然后执行finally。如果发生了异常,就中断执行try { ... }语句块,然后跳转执行匹配的catch语句块,最后执行finally

    可见,finally是用来保证一些代码必须执行的。

    如果方法声明了可能抛出的异常,那么就可以不写catch

    public static void main(String[] args) {
        try {
            process1();
            process2();
            process3();
        } catch (IOException | NumberFormatException e) { // IOException或NumberFormatException
            System.out.println("Bad input");//不同异常,相同处理,可以合并
        } catch (Exception e) {
            System.out.println("Unknown error");
        }
    }

    感谢 https://www.liaoxuefeng.com/wiki/1252599548343744/1264738442933472

  • 相关阅读:
    2014编程之美资格赛 第二题 大神和三个小伙伴
    操作系统PV操作——进程同步问题(C#实现)
    [转_管理]成功者必备的15种能力
    [技术相关]List、Dictionary转Dictionary的性能分析
    [项目管理]怎样评定软件开发成果的质量
    Visual Studio 2013 RTM 中文语言包官方下载地址发布
    IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
    HTTP请求方式中get和post的区别
    asp.net之动态页面和静态页面的区别
    HTML语言语法大全
  • 原文地址:https://www.cnblogs.com/usegear/p/15759668.html
Copyright © 2011-2022 走看看