精华内容
下载资源
问答
  • 为了解决这个问题,在java中允许用户自定义异常,但自定义异常类必须继承自Exception或其子类。 在实际的开发中,如果没有特殊的要求,自定义的异常类只需继承Exception类,在构造方法中使用super( )语句调用...
    JDK中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况。为了解决这个问题,在java中允许用户自定义异常,但自定义异常类必须继承自Exception或其子类
    在实际的开发中,如果没有特殊的要求,自定义的异常类只需继承Exception类,在构造方法中使用super( )语句调用Exception的构造方法即可。
    如果定义了自定义异常,这时就需要用到throw关键字,throw关键字用于在方法中声明抛出异常的实例对象
    语法格式:
    throw Exception 异常对象(类名)
    注意:用throw关键字抛出异常对象时,需要使用try..catch语句对抛出的异常进行处理,或者在divide方法上使用throws关键字声明抛出异常,由该方法的调用者负责处理。否则,编译异常,不通过。
    例子:
    public class DivideByMinusException extends Exception
    {
    public DivideByMinusException(){
    super();     //调用Exception的无参构造方法
    }
       public DivideByMinusException(String message){
    super(message);    //调用Exception的有参构造方法
    }
    }
     public class Example
    {
    public static void main(String[] args) 
                   try{
    int result=divide(4,-2);
              System.out.print(result);
        }catch(DivideByMinusException e){
      System.out.print(e.getMessage());
    }
    }
    //throws关键字声明抛出自定义异常
    public static int divide(int x,int y)throws DivideByMinusException{
    if(y<0){
    //使用throw关键字声明异常对象
    throw new DivideByMinusException("被除数是负数");
    }
    int result=x/y;
    return result;
    }
    }



    展开全文
  • Java自定义异常详解

    2019-07-17 21:40:23
    JDK定义了大量的异常类,可以描述编程时出现的大部分异常情况,但是实际编程过程有可能描述程序特有的异常情况,例如加法时,如果不允许加一个负数,为了解决这种问题,Java允许用户自定义异常,但必须...

    Java学习笔记----自定义异常

    JDK中定义了大量的异常类,可以描述编程时出现的大部分异常情况,但是在实际编程过程中有可能描述程序中特有的异常情况,例如在加法时,如果不允许加一个负数,为了解决这种问题,Java允许用户自定义异常,但必须继承自Exception类及其子类

    接下来就演示不允许加负数的自定义异常

    首先定义自定义异常类AddNegativeException

    AddNegativeException.java

    //package stuJava3;
    
    public class AddNegativeException extends Exception {//自定义异常类继承于Exception
    		public AddNegativeException() {//无参的构造方法
    			super();//调用父类的无参的构造方法
    		}
    		
    		public AddNegativeException(String message) {//含异常消息的构造方法
    			super(message);//调用父类有参的构造方法,将异常消息作为参数
    		}
    }
    
    

    在实际开发中如果不是特殊需求,一般只需要继承Exception类,构造方法也使用super()语句调用父类的构造方法。
    接下来在主类进行测试
    stuJava.java

    //package stuJava3;
    
    public class stuJava3 {
    
    	public static void main(String[] args) {
    		
    		try {//try...catch代码块捕获异常
    			int result=add(3,-8);//调用add()方法,传入一个负数
    			System.out.println(result);//打印结果
    		} catch (Exception e) {//对捕获的异常进行处理
    			System.out.println(e.getMessage());//处理:输出异常消息
    		}
    
    	}
    	
    	public static int add(int a,int b) throws AddNegativeException {//定义两数相加方法,抛出可能出现的自定义异常
    		if(a<0|b<0) {//如果检测的有负数
    			throw new AddNegativeException("异常:加了一个负数,请检查");//声明异常对象
    		}
    		return a+b;//返回相加结果
    	}
    
    }
    

    运行如下
    在这里插入图片描述
    成功捕获的异常,并在catch代码块处理了异常。

    要注意在方法中声明抛出自定义异常之后,就一定要捕获异常进行处理,否则编译不予通过

    展开全文
  • 12.Java自定义异常

    2020-08-30 15:36:37
    为了解决这样的问题,Java允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。 案例 自定义异常的创建: //自定义一个异常类继承自Exception public class DivideByMinusException extends Exception ...

    12.Java–自定义异常

    Java中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在设计divide()方法时不允许被除数为负数。为了解决这样的问题,Java允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。

    案例

    自定义异常的创建:

    //自定义一个异常类继承自Exception
    public class DivideByMinusException extends Exception {
    	public DivideByMinusException() {
    		super();
    		// 调用Exception无参构造器
    	}
    
    	public DivideByMinusException(String message) {
    		super(message);
    		// 调用Exception有参构造器
    	}
    }
    

    在实际开发中,如果没有特殊的要求,自定义的异常类只需继承Exception类,在构造方法中使用super()语句调用Exception的构造方法即可。

    既然自定义了异常,那么该如何使用呢?这时就需要用到之前讲解的throw关键字,在程序指定位置通过throw关键字抛出自定义的异常对象,然后对抛出的异常进行异常处理。

    接下来重新对例33中的divide()方法进行改写,在divide(方法中判断被除数是否为负数,如果为负数,就是用throw关键字向调用者抛出自定义的DivideByMinusException异常对象,如下例所示。

    public class Example35 {
    	// 下面的方法实现了两个整数相除
    	public static int divide(int x, int y) throws DivideByMinusException {
    		if (y == 0) {
    			// 使用throw关键字声明异常对象
    			throw new DivideByMinusException("除数是0");
    		}
    		int result = x / y;
    		return result;
    	}
    
    	public static void main(String[] args) {
    		try {
    			int result = divide(4, 0);
    			System.out.println(result);
    		} catch (DivideByMinusException e) {
    			System.out.println("捕获的异常信息为:" + e.getMessage());
    		}
    	}
    }
    

    在这里插入图片描述

    例子中,divide()方法通过逻辑判断对除法运算的除数是否为0进行了判断,如果除数为0就使用throw关键字抛出自定义的DivideByMinusException异常对象,然后通过throws关键字抛出异常,并在最后通过try…catch语句捕获异常。从图可以看出,程序执行后判断出除数为0,抛出了指定的异常信息。

    展开全文
  • throw 用户自定义异常 异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_...

    Java Exception:

    • Error
    • Runtime Exception 运行时异常
    • Exception
    • throw 用户自定义异常

    异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两个直接的子类。

    运行异常类对应于编译错误,它是指Java程序在运行时产生的由解释器引发的各种异常。运行异常可能出现在任何地方,且出现频率很高,因此为了避免巨大的系统资源开销,编译器不对异常进行检查。所以Java语言中的运行异常不一定被捕获。出现运行错误往往表示代码有错误,如:算数异常(如被0除)、下标异常(如数组越界)等。

    非运行异常时Non_RuntimeException类及其子类的实例,又称为可检测异常。Java编译器利用分析方法或构造方法中可能产生的结果来检测Java程序中是否含有检测异常的处理程序,对于每个可能的可检测异常,方法或构造方法的throws子句必须列出该异常对应的类。在Java的标准包java.lang java.util 和 java.net 中定义的异常都是非运行异常。

    常见异常:

    • 算术异常类:ArithmeticExecption
    • 数组负下标异常:NegativeArrayException
    • 数组下标越界异常:ArrayIndexOutOfBoundsException
    • 文件已结束异常:EOFException
    • 文件未找到异常:FileNotFoundException
    • 操作数据库异常:SQLException
    • 输入输出异常:IOException
    • 空指针异常类:NullPointerException
      当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。
    • 类型强制转换异常:ClassCastException
      假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。
    • 未找到类定义错误:NoClassDefFoundError
      当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。
    • 方法不存在错误:NoSuchMethodError
      当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。
    • 内存不足错误 OutOfMemoryError
      当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
      代码中存在死循环,(处理循环)启动参数设定过小(设定服务器的启动参数增大),内存中一次加载的数据量过于庞大(减少一次加载的数据),集合类应用的对象未回收(手动回收未回收对象)
    • 数字格式异常 NumberFormatException
      当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常

    404。路径错误。出现404一定是你的请求路径有问题,接口地址没找到,或者文件路径不存在。

    展开全文
  • java学习(13)异常

    2020-06-29 13:08:36
    程序中保证错误出现的时候至少做到: ———————————————————————————— ...在java中异常对象都是派生于Throwable类的一个类实例。 另外,用户可以自定义自己需要的异常
  • 4、throw 用户自定义异常 异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_...
  • 第八章异常和断言

    2012-02-08 13:45:05
    四、自定义异常Java语言允许用户在需要时创建自己的异常类型,用于表述JDK未涉及到的其它异常状况,这些类型也必须继承Throwable类或其子类。用户自定义异常类通常属Exception范畴,依据命名惯例,应以Exception...
  • ValidateInput接口创建了自定义异常,并且mainGui和subGui正在实现它。 因此,每次用户提交输入时,都会调用mainGui或subGui的ValidateInput类的替代方法,并根据输入引发自定义异常。 该程序旨在跟踪用户的...
  • Java实现登录查重实例

    2020-03-22 21:26:14
    今天用Java中异常方法来模拟查重过程 分析: 现实生活中,我们登录注册的时候,访问数据库,很多应用不允许ID或者用户名重复,注册操作时,如果用户名或者已存在,则抛出异常并提示:亲,该用户名已经被注册...
  • at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run...
  • 3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java面试题

    2018-04-27 19:55:38
    答:运行时异常时(JVM)java虚拟机运行过程发生的问题,比如:内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出,一般异常Java类库或程序员自己写的代码发生的错误,这类异常可以由我们去一一捕获并...
  • Java资源包01

    2016-08-31 09:16:25
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包101

    2016-07-13 10:11:08
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java 3DMenu 界面源码,有人说用到游戏不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包2

    热门讨论 2013-06-28 09:17:39
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包3

    热门讨论 2013-06-28 09:20:52
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包5

    热门讨论 2013-06-28 09:38:46
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包4

    热门讨论 2013-06-28 09:26:54
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包8

    热门讨论 2013-06-28 09:55:26
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包9

    热门讨论 2013-06-28 09:58:55
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • java开源包7

    热门讨论 2013-06-28 09:52:16
    最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
  • 3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
  • 3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
  • 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都压缩包内。...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

在java中允许用户自定义异常

java 订阅