前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义运行时异常_数据库丢失怎么恢复

自定义运行时异常_数据库丢失怎么恢复

作者头像
全栈程序员站长
发布2022-11-19 12:12:42
7470
发布2022-11-19 12:12:42
举报

大家好,又见面了,我是你们的朋友全栈君。

一、异常简单介绍:

Throwable 类是 Java 语言中所有错误Error 和异常Exception的超类,而异常分为运行时异常和非运行时异常 1、Error和运行时异常RuntimeException及其子类为非检查异常(unchecked),其它异常为检查异常(checked)。 ① RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。(并不需要添加try catch语句块),不处理编译能通过 处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。 ②其他非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,

而是在应用环境中出现的外部错误。不处理编译不能通过,需要程序员显现的抛出 2、总结:

①Error、RuntimeException及其子类或者称为非检查异常(unchecked)需要程序的运行去检测,如果出现异常然后自动的去抛出异常, 这种异常并不需要程序员显示的抛出或者添加try/catch语句块 ②而其他非RuntimeException(IOException等等)一般异常或者称为检查异常(编译的时候就已检测),这类才是程序员所关心的, 需要程序员显现的抛出或者添加try/catch语句块,程序应该且仅应该抛出或处理检查异常。 3、注意:覆盖父类某方法的子类方法不能抛出比父类方法更多的异常,所以,有时设计父类的方法时只声明抛出异常,

这是为了方便子类方法覆盖父类方法时抛出异常或加try/catch 4、错误:合理的应用程序遇到外部环境出现的差错—————>>并不是程序本身代码的错误,为检查的,不受控的,一般是由虚拟机抛出 Error是错误的父类

5、非运行时异常(检查异常)的结构形式: try块:可能发生异常的语句,不能独立存在 下面是try可以存在的形式(try块里面的语句执行到有异常为止,然后执行catch或者finally,如果没有异常,则执行正常的语句) try{}catch(){} try{}catch(){}catch(){}catch(){}catch(){}catch(){}—–>>try块后可以跟随多个catch语句块 try{}finally{}—————————————–>>可以单独跟finally try{}catch(){}finally{}

catch块:用于捕获try块中发生的异常,如果没有相对应的异常可以捕获,则不执行相应的catch语句

例如:

try{ //stu.display(); System.out.println(9/0); System.out.println(2.1); } catch(ArithmeticException e){//代表可以捕获的异常类型 System.out.println(“计算出错了,快跑啊”); }catch(NullPointerException e){//代表可以捕获的异常类型 System.out.println(“没有实例化对象”); } catch(Exception e){//代表可以捕获的异常类型 System.out.println(“我是无敌的”); }

finally块:——————————–>>不管有没有异常,有没有被捕获,finally语句块都执行

throw:声明异常,抛出异常类型,Exception或其子类类型(不是对象,而是类名),表示需要显现抛出的非运行时异常,处理原则:谁调用谁处理

二、自定义运行时异常(非检查异常):

写一个类 继承Exception或其子类,然后在其他类中使用该异常 注意:自定义的异常为运行时异常,因为运行时异常为非检查异常,并不需要程序员显示的抛出异常,但是为了更好的去检测程序,所以自定义运行时异常

自定义运行时异常的使用形式: //自定义构造带指定详细消息的新异常。 class MyException extends RuntimeException{ //构造函数 public MyException(String info){ super(info); } } //在方法中抛出此自定义异常,并添加发生异常的错误信息 class Demo{ public void display(){ //主动的去抛出这个异常,以便在主方法里面捕获 throw new MyException(“这是一个主动抛出的异常”); } //更为专业的使用方式: public void show(){ trh{ }catch(){ throw new MyException(“这是一个运行时异常,主动添加try/catch并在catch中主动抛出自定义异常,达到检测程序的目的”); } } } //在java工程主方法中调用上面的方法,如果是web工程,则由请求或者其他方法触发调用 public class MyThrowable { public static void main(String[] args) { Demo d = new Demo(); try{ d.display(); }catch(MyException me){ me.printStackTrace(); } d.show(); } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187547.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月30日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档