1 package p1.exception;
2 /*
3 * 对于角标是整数不存在,可以用角标越界表示,
4 * 对于负数为角标的情况,准备用负数角标异常来表示。
5 *
6 * 负数角标这种异常在java中并没有定义过。
7 * 那就按照java异常的创建思想,面向对象,将负数角标进行自定义描述。并封装成对象
8 *
9 * 这种自定义的问题描述成为自定义异常。
10 *
11 * 注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具有可抛性。
12 * 才可以被两个关键字所操作,throws throw
13 *
14 *
15 */
16
17 class FuShuIndexException extends Exception{
18 public FuShuIndexException() {
19 // TODO Auto-generated constructor stub
20 }
21
22 FuShuIndexException(String msg){
23 super(msg);
24 }
25 }
26 class Demo {
27 public static int method(int[] arr,int index) throws FuShuIndexException {
28
29 // System.out.println(arr[index]);
30 if (arr == null) {
31 throw new NullPointerException("数组的引用不能为空");
32 }
33 if (index>=arr.length) {
34 throw new ArrayIndexOutOfBoundsException("数组的角标越界"+index);
35
36 }
37 if (index<0) {
38 throw new FuShuIndexException("角标变成负数了");
39 }
40 return arr[index];
41 }
42
43 }
44
45 public class ExceptionDemo3 {
46
47 public static void main(String[] args) throws FuShuIndexException{
48 // TODO Auto-generated method stub
49 int[] arr = new int[3];
50 // System.out.println(arr[3]);
51
52 Demo d = new Demo();
53 int num = d.method(arr,-30);
54 System.out.println("num="+num);
55 System.out.println("over");
56
57 }
58
59 }

ExceptionDemo3

java-异常-自定义异常异常类的抛出throws的更多相关文章

  1. java的异常抛出throws和throw的简单使用

    前提: 当在程序测试时,如果你需要定义一个自己的异常,而非现在已经存在的异常,这个时候你需要用到throws和throw,try-catch只是一个简单的捕获异常的过程. 代码如下: package ...

  2. 【Java】ArrayList 的 toArray() 方法抛出 ClassCastException 异常

    第一次用这个方法,结果冒出个莫名其妙的异常来: String[] names = (String[]) mTags.toArray(); 结果会抛出 java.lang.ClassCastExcept ...

  3. java异常处理 throw RuntimeException时不需要同时方法中声明抛出throws 异常等待调用者catch进行捕获 子父类异常问题

    package com.swift.exception1; public class Demo_Exception { public static void main(String[] args) { ...

  4. Python面向对象之异常捕获(一)-----抛出一个异常

    大部分的异常都继承自Exception这个类(而这个类有继承自BaseException这个类) 常见的异常 ValueError TypeError IndexError 抛出一个异常 下面这个类的 ...

  5. JAVA Socket连接服务器时可能抛出的异常

    1.UnknownHostException:host(非ip)无法识,就会报该异常,www.google.com.hk这个虽然也ping不通,但是不会报该错,因为他是一个确实存在的域名.他会报Con ...

  6. Java捕获并处理线程失败抛出的异常

    使用 UncaughtExceptionHandler 示例代码如下: Thread.UncaughtExceptionHandler handler = new Thread.UncaughtExc ...

  7. Objective-C:除数为0的情况下异常的处理(检测、抛出、捕捉、处理)

    // DivTest.h // 异常的处理 // // Created by ma c on 15/8/11. // Copyright (c) 2015年. All rights reserved. ...

  8. 【Java学习笔记之三十二】浅谈Java中throw与throws的用法及异常抛出处理机制剖析

    异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待,或死循环. 异常有两个过程,一个是抛出异常:一个是捕捉异常. 抛出异常 抛出异常有三种形式,一是throw, ...

  9. 捕获Java线程池执行任务抛出的异常

    捕获Java线程池执行任务抛出的异常Java中线程执行的任务接口java.lang.Runnable 要求不抛出Checked异常, public interface Runnable { publi ...

随机推荐

  1. SpringBoot整合redis实现过期key监听事件

    Spring整合redis实现key过期事件监听:https://www.cnblogs.com/pxblog/p/13969375.html 可以用于简单的过期订单取消支付.7天自动收货场景中 1. ...

  2. 【九度OJ】题目1026:又一版 A+B 解题报告

    [九度OJ]题目1026:又一版 A+B 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1026 题目描述: 输入两个不超过 ...

  3. 【LeetCode】437. Path Sum III 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS + DFS BFS + DFS 日期 题目地 ...

  4. D. Water Tree

    D. Water Tree time limit per test 4 seconds memory limit per test 256 megabytes input standard input ...

  5. C. Arpa's loud Owf and Mehrdad's evil plan

    C. Arpa's loud Owf and Mehrdad's evil plan time limit per test 1 second memory limit per test 256 me ...

  6. Interval Bound Propagation (IBP)

    目录 概 主要内容 IBP CROWN CROWN-IBP 训练的技巧 写在最后 代码 Gowal S., Dvijotham K., Stanforth R., Bunel R., Qin C., ...

  7. Android开发案例 设置背景图片轮播

    点击按钮实现图片轮播效果 实践案例: xml <?xml version="1.0" encoding="utf-8"?> <LinearLa ...

  8. mysql组织结构

    1.数据的组织结构 <1>层次型 <2>网状型 <3>关系型 2.mysql软件包格式      <1>.软件包管理器特有的格式:.rpm包      ...

  9. CF858D Polycarp's phone book

    题意翻译 有 n 个长度为 9 且只包含数字字符互不相同的串. 需要对于每个串找到一个长度最短的识别码,使得这个识别码当且仅当为这个串的子串. 题目分析 因为范围不是非常大,所以可以将子串筛出来 然后 ...

  10. Centos7下yum安装mydql8

    昨天安装mydql时总是报错缺少插件,虽然最后安装上了,但还是在此记录下 一. 安装centos7系统系统 在选择安装基本环境时,选择基本环境为"网页服务器",昨天我因为选择了&l ...