ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java异常

2022-07-03 12:03:55  阅读:146  来源: 互联网

标签:Exception java 捕获 try catch 异常 id


异常

异常Exception:在程序中发生与预期不相符状况

分类

  1. 检查性异常:程序员不好预料到的异常

  2. 运行时异常:运行过程中出现异常,可以在编译过程中被忽略,最容易被避免的异常

  3. 错误ERROR:不是程序员可以控制的,错误在代码中被忽略

Java中将异常当作一个对象处理,定义java.lang.Throwable为所有异常的超类

错误

  • 是程序员控制能力范围之外的

  • 错误是由虚拟机JVM抛出的,错误发生后JVM选择线程终止

异常

  • 分为运行时异常和非运行时异常

  • 运行时异常:一般是由程序逻辑错误引起的,程序员从逻辑角度尽量避免这类异常

区别

错误:毁灭性的,出现错误之后JVM会将线程直接关闭

异常:是被处理的,通过逻辑检查,规避异常

异常捕获和抛出

捕获异常:

try{
   //检查异常
}catch(异常类型 异常名){
   //捕获异常
}finally{
   //善后工作,无论有没有异常都会执行,一般可以进行关闭文件等操作
}

在catch中可以捕获多个异常:

try{
   
}catch(Exception a){
   System.out.println("Exception");
}catch(Throwable t){
   System.out.println("Throwable");
}

注意:catch中有多个异常类型时,要从低到高的

抛出异常:1. 使用throw主动抛出异常

try{

if(){

throw new Exception(); //主动抛出异常

}

}

2.使用throws在方法中抛出异常

public void run() throws Exception{
   System.out.println("run");
}

注意:1.当方法体中的异常不能在该方法中被处理时,就要在方法上使用throws抛出异常。

2.调用该方法时还要用try/catch捕获异常,使程序虽然遇到异常,但依然可以运行

自定义异常

正常情况下,90%的异常都在Exception类里面写好了

  1. 创建异常类继承Exception

  2. throw抛出异常

  3. 调用时,try/catch捕获异常

package oop1;

import java.util.Scanner;

public class test3 {
   static void run(int id) throws MyException {
       if (id==17) {
           throw new MyException(id);
      }
       System.out.println("ok");
  }
   public static void main(String[] agrs) throws MyException {
       Scanner in =new Scanner(System.in);
       int id=in.nextInt();
       run(id);
  }
}
//自定义异常类
public class MyException extends  Exception{  
   private int id;                            
                                             
   public MyException(int id){                
       this.id=17;                            
  }                                          
   @Override                                  
   public String toString(){                  
        return "MyException:{"+id+"}";        
  }                                          
}                                              

异常注意

  1. 代码运行时,尽量使用try/catch捕获异常,避免程序终止

  2. 在catch中捕获异常时,最好在最后加一个Exception,防止漏掉一些小异常

  3. 捕获异常后,尽量去解决异常,而不是单纯的打印出该异常

  4. 对于不确定的代码也可以加try/catch捕获潜在异常

  5. 尽量添加finally释放资源空间

标签:Exception,java,捕获,try,catch,异常,id
来源: https://www.cnblogs.com/lerrysee/p/16439495.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有