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

自定义运行时异常_数据库丢失怎么恢复一、异常简单介绍:      Throwable类是Java语言中所有错误Error和异常Exception的超类,而异常分为运行时异常和非运行时异常      1、Error和运行时异常RuntimeException及其子类为非检查异常(unchecked),其它异常为检查异常(checked)。            ①RuntimeException:Runti

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、异常简单介绍:

       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.net/187547.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库

    通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库前言备份还原oracle数据库的方式有很多种,本文只讲解使用expdp、impdp数据泵方式备份与还原(恢复)数据库,此种方式可以导出/导入数据库表以及表中的数据。请自行修改目录路径,否则出现错误别怪我哦~一、备份step1:使用system登录oracle打开DOS命令行界面,使用system用户登录oracle,格式:sqlplus用户名/密码@实例名(或者使用plsql……

    2022年10月20日
    0
  • java加入md5_javamd5加密解密

    java加入md5_javamd5加密解密方法二、importjava.security.spec.*;classMD5_test{publicfinalstaticStringMD5(Strings){charhexDigits[]={‘0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’a’,’b’,’c’,’d’,’e’,’f’};try{byte…

    2022年7月14日
    34
  • java 查看进程状态_java执行shell命令并返回结果

    java 查看进程状态_java执行shell命令并返回结果进入到当前java进程的目录下(这里使用Test01.clss)使用jps查看该进程的pid使用jstack命令查看该进程运行状态信息并将日志信息打印到指定位置的dump文件中打印统计所有线程此时的状态可以看到一共有29条线程存在查看线程的状态…

    2022年8月23日
    5
  • 持续集成架构图_过程集成

    持续集成架构图_过程集成

    2025年6月21日
    0
  • 国外免费高速php空间,0fees – 300M国外高速免费PHP空间

    国外免费高速php空间,0fees – 300M国外高速免费PHP空间0fees是美国的免费空间,速度不错,提供300M空间,每月10G流量限制,ftp、web方式上传管理文件,支持PHP5,提供3个MySQL数据库,无限个支持POP3的电子邮箱,可以添加6个二级域名,绑定6个域名,可建6个不同网站,cPanel管理面板。网址:http://www.0fees.net点“OrderNow!”申请。申请很简单,填写用户名、密码、电子邮箱、网站类型、网站语言、验证码,…

    2022年9月21日
    0
  • 利用java生成uuid

    利用java生成uuid在实际项目中,我们可能想生成一个随机的而且可以保证唯一的标识,比如在给图片命名时,这时就可以采用uuid来生成随机字符串,这个随机字符串基本上是不会出现重复的。什么是UUIDuuid,就是通用唯一识别码的缩写。它的组成比较复杂,是基于当前时间(纳秒级时间)、计数器、硬件标识(通常是MAC地址)以及随机数等组合来生成的,一般情况下,不会生成重复的UUID(重复几率非常小,据概率估计,若每秒产生10亿笔UUID,100年后只产生一次重复的机率是50%),所以,我们大可不必考虑发生重复的问题。它有很多不

    2022年9月22日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号