Java基础之异常机制

举报
小小张自由--张有博 发表于 2021/11/22 23:11:00 2021/11/22
【摘要】   Java基础之异常机制 总体异常的分类 处理异常的方式 打印异常的方法 具有继承关系的异常 自定义异常类 创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。 Java有着非常强大的异常处理机制,异常的祖先是Throwable,有如下两个子类:     &nbs...
 
Java基础之异常机制

总体异常的分类

处理异常的方式

打印异常的方法

具有继承关系的异常

自定义异常类

创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。


Java有着非常强大的异常处理机制,异常的祖先是Throwable,有如下两个子类:

       Error:表示错误,错误产生后程序员不能通过代码的方式纠正,只能事先避免,好比生命已经停止。

       Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的 

异常分为编译时异常运行时异常

编译时异常又叫编译时被监测的异常:在程序编译过程中监测到非运行时异常的异常,出现该异常要么向上抛出,要么捕获处理。

运行时异常(runtimeException及其子类):在程序编译过程中监测到出现运行时异常,函数上或内部可以直接抛出异常,不需要捕获和声明。 

总体异常的分类

处理异常的方式

     抛出异常  throw  

     声明异常  throws      向上抛出 

     异常捕获  try-catch   自己处理


  
  1. static String[] usernames={"张三","赵四","王五"};
  2. public static void main(String[] args) {
  3. Scanner sc=new Scanner(System.in);
  4. System.out.println("请输入注册的名字!");
  5. String next = sc.next();
  6. //try-catch捕获异常
  7. try {
  8. checkUsername(next);
  9. } catch (RegisterException e) {
  10. e.printStackTrace();
  11. }
  12. }
  13. public static void checkUsername(String usrename) throws RegisterException {//声明异常
  14. for (String name : usernames) {
  15. if (name.equals(usrename)){
  16. throw new RegisterException("亲,该用户已经被注册!");//抛出异常
  17. }
  18. }
  19. System.out.println("恭喜您,注册成功!");
  20. }

打印异常的方法

     public String getMessage() :获取异常的描述信息,原因(提示给用户的时候,就提示错误原因。

     public String toString() :获取异常的类型和异常描述信息(不用)。

     public void printStackTrace() :打印异常的跟踪栈信息并输出到控制台

具有继承关系的异常

如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。

父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出

自定义异常类

需要继承Exception(编译器异常)或者RunTimeException(运行时异常)


  
  1. public class RegisterException extends Exception {
  2. public RegisterException() {
  3. }
  4. public RegisterException(String message){
  5. super(message);
  6. }
  7. }

创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。

文章来源: blog.csdn.net,作者:小小张自由—>张有博,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/promsing/article/details/112408071

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。