异常

异常机制

  • 处理程序运行过程中的异常

异常类

java中有许多异常类,例如NullPointException,ArrayIndexOutOfBoundException 等等

异常对象

由异常类创建的对象

编译时异常(受控异常

编译时异常必须在编译阶段处理,但是是在运行时报错

在编译阶段必须处理,具体参考——> 异常的处理方式

运行时异常(未受控异常

在运行时处理

在编写程序阶段不需要对这种异常处理

编译时异常和运行时异常的区别

编译时异常:发生概率较高,可被预测的

运行时异常:发生概率较低

异常的处理方式

  • 异常上抛:在方法声明的位置上使用throws关键字
  • 异常捕捉:使用try-catch 语句进行异常的捕捉

try-catch

  • 所有异常可以用Exception
  • catch写多个的时候,必须遵循从小到大写
try{
    
}catch(Exception e){
    
}
  • 可以用 | 同时处理多个异常

异常对象常用方法

  • getMessage
  • printStackTrace 打印异常堆栈信息

finally 子句

  • 在finally子句中的代码一定会在最后执行执行
  • 保证在try语句出现异常的时候,能够释放资源

特殊try-finally语句

    public static int doDome2(){
        int i =100;
        try{
            return i;
        }finally {
            i++;
            System.out.println(i);
        }
    }// 改方法返回100

自定义异常

  • 自定义类继承Exception或者RuntimeException
class MyException extends Exception{
    public MyException(){
        
    }
    public MyException(String str){
        super(str);
    }
}

注意

  • 重写后的方法不能比重写前的方法抛出更多的异常,可以更少

[图片上传失败...(image-a0a14e-1593517840940)]
image-20200628150058051.png

UML(统一建模语言)

  • 一种图标式语言
  • 用来描述类与类之间的关系,程序的运行过程和运行状态等等
  • 只要是面向对象程序设计语言就有UML
    public static void main(String[] args) throws ClassNotFoundException {
        doSome();
    }
    public static void doSome() throws ClassNotFoundException{

    }
    public static void main(String[] args)  {
        try {
            doSome();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static void doSome() throws ClassNotFoundException{

    } 

你可能感兴趣的:(异常)