一、手动抛出异常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. MySQL 触发器trigger

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(af ...

  2. css 动画开关按钮

    <style> input[type="checkbox"] { display: none; } input[type="checkbox"] + ...

  3. java基础之 类型转换

    一.自动类型转换 1.java中不同类型的数据在计算时,为保证数据的精度,数据的类型会以大容量的类型为主: 2.自动类型转换的排序: char.byte.short -> int -> l ...

  4. CAN总线电平(隐性与显性)

            CAN2.0B规范定义了两种互补的逻辑数值:显性和隐性.同时传送显性和隐性位时,总线呈现显性状态:同时传送显性状态位时,总线呈现显性状态:同时传送隐性状态位时,总线呈现隐性状态.显性数 ...

  5. 第三十二篇 玩转数据结构——AVL树(AVL Tree)

          1.. 平衡二叉树 平衡二叉树要求,对于任意一个节点,左子树和右子树的高度差不能超过1. 平衡二叉树的高度和节点数量之间的关系也是O(logn) 为二叉树标注节点高度并计算平衡因子 AVL ...

  6. Android 服务和广播的使用

    Android 服务和广播的使用 服务的使用 创建服务类 创建一个java文件,取名 mService.java,继承Service. public class mService extends Se ...

  7. Tomcat配置过程

    Tomcat的配置其实还是挺简单的,下面是在Myeclipse中配置 1.首先要在Tomcat官网下载,网址:http://tomcat.apache.org/,然后左侧会有Download,选择你要 ...

  8. bistoury建库建表(一)

    bistoury DROP TABLE IF EXISTS bistoury_app; CREATE TABLE bistoury_app( id INT UNSIGNED auto_incremen ...

  9. Python爬虫连载7-cookie的保存与读取、SSL讲解

    一.cookie的保存与读取 1.cookie的保存-FileCookie.Jar from urllib import request,parse from http import cookieja ...

  10. 同步块:synchronized(同步监视器对象){同步运行代码片段}

    package seday10; import seday03.Test2; /** * @author xingsir * 同步块:synchronized(同步监视器对象){需要同步运行的代码片段 ...