一、手动抛出异常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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载65-自定义手动抛出异常、子类的异常范围、数组初探的更多相关文章

  1. 75.Java异常处理机制-手动抛出异常

    package testDate; import java.io.File; import java.io.FileNotFoundException; public class TestReadFi ...

  2. java 面向对象(三十):异常(三) 手动抛出异常对象

    1.使用说明在程序执行中,除了自动抛出异常对象的情况之外,我们还可以手动的throw一个异常类的对象. 2.[面试题] throw 和 throws区别:throw 表示抛出一个异常类的对象,生成异常 ...

  3. Java连载62-使用throws关键字处理异常

    ​一.处理异常的两种方式 1.所有的编译时异常,要求程序员在编写程序阶段,必须对它进行处理,如果不处理的话,编译就会无法通过,处理异常有两种方法:捕捉和声明抛出. 2.捕捉:try.....catch ...

  4. 移动开发首页业界资讯移动应用平台技术专题 输入您要搜索的内容 基于Java Socket的自定义协议,实现Android与服务器的长连接(二)

    在阅读本文前需要对socket以及自定义协议有一个基本的了解,可以先查看上一篇文章<基于Java Socket的自定义协议,实现Android与服务器的长连接(一)>学习相关的基础知识点. ...

  5. ErrorCode枚举类型返回错误码信息测试,手动抛出异常信息,在事务中根据错误码来回滚事务的思路。

    ErrorCode.java 简单测试代码,具体应用思路:手动抛出异常信息,在事务中根据错误码来回滚事务的思路. public enum ErrorCode { //系统级 SUCCESS(" ...

  6. 关于thinkphp5手动抛出Http异常时自定义404页面报错的问题

    在使用HttpException手动抛出异常时,希望跳转到自定义的错误页面,官方的文章中是这样描述的. 可以使用\think\exception\HttpException类来抛出异常 // 抛出 H ...

  7. Java连载50-import导入、访问控制权限修饰符

    一.import 1.import语句用来完成导入其他类,同一个包下的类不需要再导入 不在同一个包下需要手动导入. 2.import语法格式 import 类名: import 包名.*; //imp ...

  8. 理解java容器底层原理--手动实现HashMap

    HashMap结构 HashMap的底层是数组+链表,百度百科找了张图: 先写个链表节点的类 package com.xzlf.collection2; public class Node { int ...

  9. 《手把手教你》系列技巧篇(七十一)-java+ selenium自动化测试-自定义类解决元素同步问题(详解教程)

    1.简介 前面宏哥介绍了几种关于时间等待的方法,也提到了,在实际自动化测试脚本开发过程,百分之90的报错是和元素因为时间不同步而发生报错.本文介绍如何新建一个自定义的类库来解决这个元素同步问题.这样, ...

随机推荐

  1. ts中接口的用法

    ts中的接口主要的作用是: 对“对象”进行约束描述 对“类”的一部分行为进行抽象 一.属性接口 接口中可定义 确定属性.可选属性.任意属性.只读属性 1.确定属性 interface UserInfo ...

  2. Spark 中 GroupByKey 相对于 combineByKey, reduceByKey, foldByKey 的优缺点

    避免使用GroupByKey 我们看一下两种计算word counts 的方法,一个使用reduceByKey,另一个使用 groupByKey: val words = Array("on ...

  3. 联想小新潮怎么修改fn热键以及怎么进入bios状态

    联想小新潮怎么修改fn热键 http://www.ylmfwin100.com/ylmfnew/11129.html  怎么进入bios状态  https://zhidao.baidu.com/que ...

  4. C语言 strlen

    C语言 strlen #include <string.h> size_t strlen(const char *s); 功能:计算指定指定字符串s的长度,不包含字符串结束符‘\0’ 参数 ...

  5. 云原生学习笔记(3)——Kubernetes基本概念

    学习地址:https://developer.aliyun.com/lesson_1651_13078?spm=5176.270689.1397405.6.716ef5f8Q9z1z3#_13078 ...

  6. JavaScript错误-throw、try和catch

    try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行. JavaS ...

  7. 题解 UVA1335 【Beijing Guards】

    UVA1335 Beijing Guards 双倍经验:P4409 [ZJOI2006]皇帝的烦恼 如果只是一条链,第一个护卫不与最后一个护卫相邻,那么直接贪心,找出最大的相邻数的和. 当变成环,贪心 ...

  8. 抽象工厂模式(JAVA反射)

    实例代码(JAVA):模式动机     在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方 ...

  9. html()和append()

    html()方法会替换原有内容,append() 方法在被选元素的结尾插入指定内容.prepend() 方法在被选元素的开头插入指定内容 appendChild() 方法向节点添加最后一个子节点.pr ...

  10. 507,介绍一下标准的css盒子模型?低版本ie的盒子模型有什么不同的?

    有两种,IE盒子模型,另外是W3C盒子模型: 盒模型都包括:内容(content),填充(padding),边界(margin),边框(border): 区别:IE的content部分吧border和 ...