zoukankan      html  css  js  c++  java
  • Java连载65-自定义手动抛出异常、子类的异常范围、数组初探

    一、手动抛出异常1.自定义无效名字异常:

    (1)编译时异常,直接继承Exception

    (2)运行时异常,直接继承RuntimeException

    举例子:注意点:throws会向上抛出异常,跑到最上面的话,也就是到了main主方法了,就不要再抛了,使用try...catch....打印出来吧,当然写throws好像也没问题。

     
    
    package com.bjpowernode.java_learning;
    
    ​
    
    public class D64_2_ManualThrowException {
    
      public static void main(String[] args) {
    
        try {
    
          Customer65 c1 = new Customer65();
    
          c1.register("ng");
    
        }catch(IllegalNameException i1) {
    
          System.out.println(i1.getMessage());
    
        }
    
      }
    
    }
    
    class IllegalNameException extends Exception{
    
      //编译时异常
    
      public IllegalNameException() {}
    
      public IllegalNameException(String msg) {
    
        super(msg);
    
      }
    
    }
    
    class Customer65{
    
      String username = "Jack";
    
      public void register(String username) throws IllegalNameException{
    
        if(username.length()<3) {
    
          //创建异常对象
    
          IllegalNameException i1 = new IllegalNameException("用户名长度不能少于3位");
    
          //手动抛出异常
    
          throw i1;
    
         
    
        }else {
    
          this.username = username;
    
        }
    
      }
    
     
    
    }

    二、重写的方法不能比被重写的方法抛出更为宽泛的异常

    例子:

    class A{
    
      public void m1(){}
    
    }
    
    classs B extends A{
    
      public void m1() throws Exception{}
    
      //子类永远无法抛出比父类更多的异常
    
    }

    释义:这样会编译错误,子类的出现了异常,而父类是没有抛出异常的

    三、数组

    1.数组一种引用数据类型

    2.数组是一种简单的数据类型,线性的结构

    3.数组是一个容器,可以用来存储其他元素,数组是可以存储任意数据类型的​元素。

    4.​数组分为:一维数组、二维数组、三维数组、多维数组​。。。

    5.数组中存储的​元素类型是统一的。

    6.数组长度不可以改变,数组一旦创建长度是不可以变得,固定的

    7.数组会使用数组的首元素地址作为引用指向的地址。

    8.数组的每一个元素都是有下标的,有索引的,从0开始,任何一个数组都一个length属性用来获取数组中​元素的个数。数组最后一个元素的下标数组元素个数减1.

    9.数组的优点:查找效率比较高;缺点也是显然的:随意增删元素​效率会很低。

    ​举个例子:

    package com.bjpowernode.java_learning;
    
    ​
    
    public class D65_2_ArrayExcerse {
    
      public static void main(String[] args) {
    
        //声明一个一维数组,用来存储int类型
    
        int[] a1 = {100,200,300,400};
    
        //boolean类型数组
    
        boolean a2 = {true,false,true};
    
        //String类型数组
    
        String[] a3 = {"zhansan","lisi","wangwu"};
    
        //Object数组
    
        Object o1 = new Object();
    
        Object o2 = new Object();
    
        Object o3 = new Object();
    
        Object[] objs = {o1,o2,o3};
    
       
    
      }
    
    }
    
     

    四、源码:

    D65_1_ManualThrowException.java

    D65_2_ArrayExcerse.java

    https://github.com/ruigege66/Java/blob/master/D65_1_ManualThrowException.java

    https://github.com/ruigege66/Java/blob/master/D65_2_ArrayExcerse.java

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    洛谷—— P1187 3D模型
    商铺项目(Redis缓存)
    商铺项目(使用DES加密配置信息)
    Linux下tomcat启动项目原因排查
    商铺项目(商品详情页开发)
    商铺项目(店铺详情页开发)
    商铺项目(店铺列表开发)
    商铺项目(首页前端开发)
    商铺项目(首页后台开发)
    商铺项目(商品类别模块二)
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12099829.html
Copyright © 2011-2022 走看看