zoukankan      html  css  js  c++  java
  • 2020年9月4日 异常处理

    package com.atguigu.test04;
    
    /*
     * 一、异常的处理方式:try...catch
     * 1、语法格式:
     * try{
     *         可能发生异常的代码
     * }catch(异常类型1  异常对象名){//异常对象名绝大多数都是写e
     *         处理这个异常的代码
     * }catch(异常类型2  异常对象名){//异常对象名绝大多数都是写e
     *         处理这个异常的代码
     * }catch(异常类型3  异常对象名){//异常对象名绝大多数都是写e
     *         处理这个异常的代码
     * }
     * 。。。。
     * 
     * 2、异常对象的常用方法
     * (1)e.printStackTrace();
     * 打印异常的详细信息,包括追踪跟踪信息,即这个异常对象一路经过了哪些方法
     * (2)e.getMessage();
     * 返回异常对象中简单的错误信息提示
     * 
     * 3、打印异常/错误信息
     * System.err.println(xx);打印错误信息
     * 
     * System.out.println(xx);打印正常信息
     * 
     * 4、多个catch分支,如何匹配和执行的?
     * 从上到下依次判断,一旦有一个满足,后面就不看了。
     * 
     * 建议:如果多个catch中的异常类型有大小包含关系,那么小的在上,大的在下,如果没有大小包含关系,顺序随意。
     * 
     * 5、如果catch,可以捕获try中发生的异常,那么程序,会从try...catch下面的代码继续运行 ,不会崩溃。
     *     如果catch无法捕获try中发生的异常,那么就会导致当前方法结束,并把异常对象抛出调用者,
     * 如果调用者可以处理,那么从调用者处理代码的后面继续运行,否则继续往上抛,最终到达JVM,程序就崩溃了。
     */
    public class TestTryCatch {
        //从命令行接收2个整数,求商
        public static void main(String[] args) {
            try {
                int a = Integer.parseInt(args[0]);//第一个参数赋值给a变量
                int b = Integer.parseInt(args[1]);//第二个参数赋值给b变量
                int shang = a/b;
                System.out.println(a +"/" + b + "=" + shang);
            } catch (NumberFormatException e) {
                e.printStackTrace();//标准的
    //            System.err.println(e.getMessage());
    //            System.out.println(e.getMessage());
            } catch (ArrayIndexOutOfBoundsException e){
                e.printStackTrace();
            } catch (ArithmeticException e){
                e.printStackTrace();
            } catch (Exception e){
                e.printStackTrace();
            } 
            
            
            System.out.println("其他的代码....");
        }
    }
    package com.atguigu.test04;
    
    /*
     * 二、try..catch的形式二
     * try{
     *         可能发生异常的代码
     * }catch(异常类型1  异常对象名){//异常对象名绝大多数都是写e
     *         处理这个异常的代码
     * }catch(异常类型2  异常对象名){//异常对象名绝大多数都是写e
     *         处理这个异常的代码
     * }catch(异常类型3  异常对象名){//异常对象名绝大多数都是写e
     *         处理这个异常的代码
     * }
     * 。。。。
     * finally{
     *         不管try中是否发生异常,也不管catch是否可以捕获异常,这里代码都必须执行
     * }
     * 
     * 一般用于编写释放资源,断开连接等代码
     * 
     * 特殊情况:可以没有catch部分
     * try{
     *         
     * }finally{
     *         
     * }
     */
    public class TestTryCatchFinally {
        public static void main(String[] args) {
            try {
                int a = 1;
                int b = 0;
                System.out.println(a/b);
            } catch (ArrayIndexOutOfBoundsException e) {
                e.printStackTrace();
            } finally{
                System.out.println("最终块");
            }
        }
    }
  • 相关阅读:
    Java访问Oracle服务器
    easyUI之练习
    easyUI之Tree(树)
    easyUI之Messager(消息窗口)
    easyUI之表单
    easyUI之Dialog(对话框窗口)
    easyUI之函数
    easyUI之window窗口
    easyUI之progressbar进度条
    easyUI之slider滑动条框
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/13614466.html
Copyright © 2011-2022 走看看