zoukankan      html  css  js  c++  java
  • 异常(五)

    1.异常
      1.1程序执行过程中出现的影响程序正常运行的现象
      1.2异常语法
        try{
          //代码块
        }catch(异常类型1 e1){
      
        }catch(异常类型2 e2){

        }...{

        }finally{

        }
      注意:try:表示可能出现异常的代码块
         catch:抓取异常,并进行处理
           可以抓取多个异常,异常的范围要从小到大抓取,并且只会执行第一个匹配的异常类型
         finally:最终的,不管是否出现异常,finally中的代码块始终会执行,
           除虚拟机停止(System.exit(1))这种情况外
      注意:finally和return的执行顺序:先执行return,把返回结果保存在返回结果区域,并没有返回,
        再执行finally完后,最后,把保存在结果区域的结果返回给调用者

    运行结果:

     1 package Day12六;
     2 
     3 import java.util.InputMismatchException;
     4 import java.util.Scanner;
     5 import org.apache.log4j.Logger;
     6 
     7 public class Test12 {
     8     private static Logger logger=Logger.getLogger(Test12.class.getName());
     9     public static void main(String[] args) {
    10         try{
    11             
    12             Scanner input=new Scanner(System.in);
    13             System.out.print("请输入被除数:");
    14             int num1=input.nextInt();
    15             logger.debug("输入被除数:"+num1);
    16             System.out.print("请输入除数:");
    17             int num2=input.nextInt();
    18             logger.debug("输入除数:"+num2);
    19             System.out.println(String.format("%d/%d=%d", num1,num2,num1/num2));
    20             logger.debug("输出运算结果:"+String.format("%d/%d=%d", num1,num2,num1/num2));
    21         }catch(InputMismatchException e){
    22             System.out.println("被除数和除数必须是整数"+e);
    23         }catch(ArithmeticException e){
    24             logger.error(e.getMessage());
    25         }catch(Exception e){
    26             logger.error(e.getMessage());
    27         }finally{
    28             System.out.print("感谢使用本程序!");
    29         }
    30     }
    31     
    32 }
    代码示例

      1.3throws 声明异常
        a.就是当当前方法,不能解决这个异常的时候,必须把这个异常交给上一个调用者处理
        b.语法:
          访问修饰符 返回值类型 方法名(参数列表)[throws 异常]{

          }

    运行结果:

     1 package Day12六;
     2 /**
     3  * 使用throw在方法内抛出异常
     4  * @author Administrator
     5  *
     6  */
     7 public class Person {
     8     private String name="";        //姓名
     9     private int age=0;            //年龄
    10     private String sex="男";    //性别
    11     /**
    12      * 设置性别
    13      */
    14     public void setSex(String sex) throws Exception{
    15         if("男".equals(sex) || "女".equals(sex)){
    16             this.sex=sex;
    17         }else{
    18             //抛出异常
    19             throw new Exception("性别必须是"男"或者"女"!");
    20         }
    21     }
    22     /**
    23      * 输出基本信息
    24      */
    25     public void print(){
    26         System.out.println(this.name+"("+this.sex+","+this.age+"岁)");
    27     }
    28 
    29         public static void main(String[] args) {
    30         Person p=new Person();
    31         try{
    32             p.setSex("1");
    33         }catch(Exception e){
    34             System.out.println(e.getMessage());
    35             e.printStackTrace();
    36         }
    37     }
    38 }
    代码示例


    2.java异常体系
      throwable
        error:出现不能通过程序处理的错误
        Exception:可以同程序抓取或者抛出的错误
          检查异常(非运行时异常):编译阶段会出现的异常
            SQLException,IOException,ClassNotFoundException
          非检查异常(运行时异常RunTimeException):运行阶段会出现的异常
            NullPointerException,ArrayIndexOutOfBoundsException,ClassCastException
        注意:checked异常,是必需处理的
           运行时异常,可以不处理
    3.导入第三方jar包
      第一步:右击工程名,新建一个文件夹(Fold),名字为lib
      第二步:把第三方jar包复制到lib目录下
      第三步:右击工程名--->properties
          --->java build path
          --->libraries
          --->add jar
          --->再从项目中的lin目录下选中你要的jar包
          --->确定
    4.使用log4j
      第一步:导入log4j jar包
      第二步:写配置文件log4j.properties(放在src下)
        注意:文件名和文件路径
        (开发) (生成)
        log4j.rootLogger=debug | info
      第三步:使用log4j
        a.导入log4j类
          import org.apache.log4j.Logger;
        b.在指定类中,写属性
          privatr static Logger logger=Logger.getLogger(指定类名.class);
        c.在指定行写日志
          logger.debug("日志信息")
          logger.info("信息");

    运行结果:

     1 package Day12六;
     2 
     3 import org.apache.log4j.Logger;
     4 
     5 public class Test11 {
     6     
     7     private static Logger log=Logger.getLogger(Test11.class);
     8     
     9     public static void main(String[] args) {
    10         String str="abc";
    11         try{
    12             int i=Integer.parseInt(str);
    13         }catch(Exception e){
    14             log.debug("出现错误!");
    15         }
    16     }
    17 }
    代码示例
  • 相关阅读:
    windows下安装pip教程
    python安装扩展”unable to find vcvarsall.bat“的解决办法
    minggw 安装
    Python-- easy_install 的安装
    python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断
    python中的三个读read(),readline()和readlines()
    同时读取两个文件进行while循环
    python 类实例化,修改属性值
    Python if-elif-else
    python 元组
  • 原文地址:https://www.cnblogs.com/yang82/p/7061560.html
Copyright © 2011-2022 走看看