zoukankan      html  css  js  c++  java
  • Java异常

    异常

    异常处理的最大父类是Throwable,但开发中不使用,其下有两个子类:

    Error:表示JVM错误,与程序无关

    Exception:一般指程序中的错误,开发中想要进行异常处理,基本使用此类。

    throws 关键字

    使用此关键字后,方法中不处理任何异常,而交给调用处去处理。

    如果throws在主方法上,则所有的异常都交给JVM去处理。

    throw 关键字

    程序中可以使用throw关键字人为的抛出一个异常。

    在异常处理中,每次产生异常的时候都是产生了一个异常类的实例化对象

     1 package com.fwj.exceptiondemo;
     2 
     3 public class Math {
     4 
     5     public int div(int i,int j) throws Exception{
     6         int temp = 0;
     7         try {
     8             System.out.println("出发开始....");
     9             temp = i/j;
    10         } catch (Exception e) {
    11             throw e;
    12         }finally{
    13             System.out.println("虽然产生异常但我们希望完成这一步操作,又向上抛出异常...");
    14         }
    15         return temp;
    16     }
    17 }
     1 package com.fwj.exceptiondemo;
     2 
     3 public class Test {
     4 
     5     public static void main(String[] args) {
     6 
     7         Math math = new Math();
     8         try {
     9             int temp = math.div(5, 0);
    10             System.out.println(temp);
    11         } catch (Exception e) {
    12             e.printStackTrace();
    13         }
    14     }
    15 
    16 }

    RuntimeException

    public static int parseInt(String s)throws NumberFormatException

    Integer类中的parseInt(String s)方法虽然抛出了异常,但在程序中不进行异常处理。

    NumberFormatException是runtimeException的子类

    说明只要是runtimeException异常对象,虽然方法使用了throws,程序中也可以不进行处理。

    自定义异常

    1 package com.fwj.exceptiondemo;
    2 
    3 public class MyException extends Exception {
    4 
    5     public MyException(String msg){
    6         super(msg);
    7     }
    8 }
     1 package com.fwj.exceptiondemo;
     2 
     3 public class TestMyException {
     4 
     5     public static void main(String[] args) {
     6 
     7         try {
     8             throw new MyException("自定义异常哦");
     9         } catch (Exception e) {
    10             e.printStackTrace();
    11         }
    12     }
    13 
    14 }

    assert关键字

    jdk1.4新添加的

    当程序执行到某条语句后,其结果肯定是固定的值。

    程序运行的时候需要给JVM加入-ea参数

     1 package com.fwj.exceptiondemo;
     2 
     3 public class AssertDemo {
     4 
     5     public static void main(String[] args) {
     6 
     7         int i = 10;
     8         //assert i==80;//两种断言方式
     9         assert i==100:"值错了";    
    10     }
    11 }

  • 相关阅读:
    字符串常量池
    JDK1.8-java.lang.Object类源码阅读
    请给你的Mysql(InnoDB)表加上主键吧
    java线程占多大的内存,占哪里的内存?
    c# 多线程
    c# 遍历文件夹及其所有文件
    T-SQL 查询语句总结
    SQL Server使用LIKE运算符进行匹配查询
    sql server中关于批处理与脚本的简单介绍
    关于SQL Server数据表的五中约束
  • 原文地址:https://www.cnblogs.com/mingluosunshan/p/3230789.html
Copyright © 2011-2022 走看看