java异常第二篇

开篇导文
看标题名字就知道我之前还有一篇异常的文章,这一篇是接着上一篇继续写的,我先把上一篇的链接给贴出来,是带有连贯性的,是一个异常的知识结构体系java异常第一篇,好了开篇导文就说到这里,上次说到异常的父类以及实现类,下面就是今天要分享的异常第二篇啦。

自己处理异常的实现
我们自己如何处理异常呢?有俩种
第一种:try…catch…finally
第二种:throws 抛出
其实写过代码,学过java的人对于这俩种方式都是非常熟悉的,我写的每一篇都是深入细节,简单点说就是知道代码每一步都做了什么事情,如果看到这里,对于异常的每一步脑海里还没有很多细节性的东西,或者对异常觉得自己还有很多地方很模糊,那就接着往下看吧,我会带着你逐步了解异常的细节。

先说第一种try…catch…finally
五种实现格式
try…catch…finally
try…catch…
try…catch…catch…
try…catch…catch…fianlly
try…finally
代码解释

//第一种格式
try {
     可能出现问题的代码;
    }catch(异常名 变量名) {
     针对问题的处理;
    }finally {
     释放资源;
    }
//第二种格式
try {
     可能出现问题的代码;
    }catch(异常名 变量名) {
     针对问题的处理;
    }
//第三种格式
try {
     可能出现问题的代码;
    }catch(异常名 变量名) {
     针对问题的处理;
    }catch(异常名 变量名) {
     针对问题的处理;
    }
//第四种格式
try{
    可能出现问题的代码;
    }catch(异常名 变量名){
    针对问题的处理;
    }catch(异常名 变量名){
    针对问题的处理;
    }finally{
    释放资源;
    }
//第五种格式
try{
   可能出现问题的代码;
   }finally{
   释放资源;
   }

代码需要注意的点:
1.try里面的代码越少越好(因为:try里的代码都要走系统的异常处理机制,每一行代码都会消耗系统资源,里面代码过多就会影响程序的运行速度)
2.catch里面要有内容,哪怕是一个输出语句(可以给用户一个温馨提示,说明是什么问题。如果没有的话,客户也不知道程序出了什么问题,影响用户体验)
3.平级关系的异常谁前谁后无所谓,如果出现了子父关系,父必须在后面。
(在try里面发现问题后,jvm会帮我们生成一个异常对象,然后把这个对象抛出,和catch里面的类进行匹配。如果该对象是某个类型的,就会执行该catch里面的处理信息。)
4.catch里的异常名能明确的尽量明确,不要用父类的来处理。(每次系统匹配异常的时候,都会找到具体的异常类,如果给的是Exception,系统就会从Exception的众多子类中找到具体的异常类,然后才会抛出。下面是查询API的Exception的子类截图
在这里插入图片描述之所以说明这个的原因还是节约系统资源)
5.被finally控制的语句体一定会执行(注意
如果在执行到finally之前jvm退出了,就不能执行了。这里贴一段代码,,可以贴到自己的编码工具里看看效果。)

//代码导的所有包
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

//类名
public class FinallyDemo {
 public static void main(String[] args) {
     String s = "2014-11-20";
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     
     Date d = null;
     try {
   d = sdf.parse(s);
  } catch (ParseException e) {
   e.printStackTrace();
   System.exit(0);//这里可以查阅APISystem类里的exit方法(作用是使jvm正常退出)
  } finally {
   System.out.println("这里的代码是可以执行的");
  }
  System.out.println(d);
  }
 }

异常中要了解的几个方法:
(1)public String getMessage():异常的消息字符串
(2) public String toString():返回异常的简单信息描述
此对象的类的 name(全路径名)
": "(冒号和一个空格)
调用此对象 getLocalizedMessage()方法的结果 (默认返回的是getMessage()的内容)
(3)printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。把信息输出在控制台。
(因为这里是我自己做的总结,如果看起来比较懵的话,可以到API里自行查阅这几个方法,我这里对printStackTrace()方法打印出来的错误信息做一个解剖
在这里插入图片描述

今天try…catch…finally就说完了,下一篇详细
说明自己处理的第二种方式 throws

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值