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

Java连载65-自定义手动抛出异常、子类的异常范围、数组初探的更多相关文章
- 75.Java异常处理机制-手动抛出异常
		
package testDate; import java.io.File; import java.io.FileNotFoundException; public class TestReadFi ...
 - java 面向对象(三十):异常(三)   手动抛出异常对象
		
1.使用说明在程序执行中,除了自动抛出异常对象的情况之外,我们还可以手动的throw一个异常类的对象. 2.[面试题] throw 和 throws区别:throw 表示抛出一个异常类的对象,生成异常 ...
 - Java连载62-使用throws关键字处理异常
		
一.处理异常的两种方式 1.所有的编译时异常,要求程序员在编写程序阶段,必须对它进行处理,如果不处理的话,编译就会无法通过,处理异常有两种方法:捕捉和声明抛出. 2.捕捉:try.....catch ...
 - 移动开发首页业界资讯移动应用平台技术专题  输入您要搜索的内容 基于Java Socket的自定义协议,实现Android与服务器的长连接(二)
		
在阅读本文前需要对socket以及自定义协议有一个基本的了解,可以先查看上一篇文章<基于Java Socket的自定义协议,实现Android与服务器的长连接(一)>学习相关的基础知识点. ...
 - ErrorCode枚举类型返回错误码信息测试,手动抛出异常信息,在事务中根据错误码来回滚事务的思路。
		
ErrorCode.java 简单测试代码,具体应用思路:手动抛出异常信息,在事务中根据错误码来回滚事务的思路. public enum ErrorCode { //系统级 SUCCESS(" ...
 - 关于thinkphp5手动抛出Http异常时自定义404页面报错的问题
		
在使用HttpException手动抛出异常时,希望跳转到自定义的错误页面,官方的文章中是这样描述的. 可以使用\think\exception\HttpException类来抛出异常 // 抛出 H ...
 - Java连载50-import导入、访问控制权限修饰符
		
一.import 1.import语句用来完成导入其他类,同一个包下的类不需要再导入 不在同一个包下需要手动导入. 2.import语法格式 import 类名: import 包名.*; //imp ...
 - 理解java容器底层原理--手动实现HashMap
		
HashMap结构 HashMap的底层是数组+链表,百度百科找了张图: 先写个链表节点的类 package com.xzlf.collection2; public class Node { int ...
 - 《手把手教你》系列技巧篇(七十一)-java+ selenium自动化测试-自定义类解决元素同步问题(详解教程)
		
1.简介 前面宏哥介绍了几种关于时间等待的方法,也提到了,在实际自动化测试脚本开发过程,百分之90的报错是和元素因为时间不同步而发生报错.本文介绍如何新建一个自定义的类库来解决这个元素同步问题.这样, ...
 
随机推荐
- 文件分割合并DOS版
			
这个从163邮箱里翻出来的程序,2004年的修改日期,放这另存一下. 当时拿了一本C++的书来学,学了一阵就琢磨着做一个东东,然后就想起一个以前印象深刻的软件,叫做笨笨狗分割器. 当时主要还是靠3.5 ...
 - 【算法学习记录-排序题】【PAT A1016】Phone Bills
			
A long-distance telephone company charges its customers by the following rules: Making a long-distan ...
 - Solr与JDK对应版本关系,Tomcat与JDK版本对应关系
			
最新在部署solrCloud集群,由于自己机器上用的JDK都是JDK1.7的,然后我就从网上下载了最新下载了最先的solr6.6.0和最新的Tomcat9.0,部署了一下,开始报错,提示solr和JD ...
 - pyautocad
			
首部必须 #!/usr/bin/env python # -*- coding: utf-8 -*- 导入pyautocad import pyautocad import re # 设置python ...
 - python之文件复制
			
python文件复制操作. # -*- coding: utf-8 -*- import shutil import os # file_path = 'C:\\Users\\WT\\Desktop\ ...
 - 每天进步一点点------FIR(一)
			
在数字信号处理系统中,有限脉冲响应(finite impulse response,FIR)数字滤波器是一个非常重要的基本单元.近年来,由于FPGA具有高速度.高集成度和高可靠性的特点而得到快速发展. ...
 - Python单元测试unittest与HTMLTestRunner报告生成
			
本文为简单介绍,使用python自带模块unittest来进行单元测试 首先我们有一个需要测试的类,employee.py 定义了涨薪的方法.我们需要测试这个类的功能是否正确. class Empl ...
 - C# 程序集(Assembly)
			
程序集 程序集是代码进行编译是的一个逻辑单元,把相关的代码和类型进行组合,然后生成PE文件.程序集只是逻辑上的划分,一个程序集可以只由一个文件组成,也可由多个文件组成.不管是单文件程序集还是多文件程序 ...
 - DataTable 数据批量写入数据库三种方法比较
			
DataTable数据批量写入数据库三种方法比较 1) insert循环插入: 2) sqldataadapter.update(dataset,tablename); 3) sqlbul ...
 - bugku 闪的好快
			
这是一道二维码的题目.保存图片祭出神器StegSolve.然后Analysis->Frame Browser.这里发现是18张图.也就是18张图片. 我拿手机一个挨着一个扫的.扫出来的结果是SY ...