一、自定义异常类

我们知道所有的异常都是Exception,所以我们需要自定义异常只需要继承那个Exception类就可以了。下面我们自定义一个异常类,代码如下:

/**
* 自定义异常,
*/
//继承 Exception
public class MyException extends Exception{
public MyException(String message){
//出现异常打印的语句
super(message);
}
}

二、设计方法,抛出异常

下面我们可以设计一个方法,抛出异常,代码如下:

public class Student {
//显示抛出异常 ,可以同时抛出多个,
//那么,调用此方法的就必须捕获此异常或者继续抛出
public void stu(int age) throws MyException,ArithmeticException{
if(age<18){
throw new MyException("靓仔,你年龄不够");
}
System.out.println("欢迎,报名!");
}
}

注意抛出异常的格式是在方法后面使用throws关键字,可以抛出多个异常使用英文逗号隔开即可。在程序里面我们要求年龄必须是大于18,否则就显示的抛出异常,在这里使用的关键字是throw。抛出我们刚才新建的异常类对象。

三、测试方法

我们在main方法中调用这个方法。由于我们设计的这个方法抛出了异常。所有我们在调用的时候编译器要求我们必须处理异常。我们有两种处理方法

1、使用try...catch...捕获异常

由于方法抛出了两个异常所以我们两个都需要捕获。代码如下:

public class Run {
public static void main(String[] args) {
Student student = new Student();
try {
student.stu(18);
} catch (ArithmeticException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

2、在调用的方法使用throws继续抛出异常。

我们也需要抛出两个异常。代码如下:

public class Run {
public static void main(String[] args) throws ArithmeticException,
MyException {
Student student = new Student();
student.stu(18);
}
}

java自定义异常和throw、throws的使用的更多相关文章

  1. java异常处理之throw, throws,try和catch

    转自 http://blog.csdn.net/zhouyong80/article/details/1907799  程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...

  2. 【Java】异常 —— throw, throws, try catch 相关内容

    嗯……面试考到了这个,又是一个如无意外 那么接下来就总结吧 一.什么是异常 程序运行过程中发生的异常事件. RuntimeException通常是因为编程员因为疏忽没有检查而引起的错误. 二.Exce ...

  3. Java 错误结果Throw/Throws

    目录 java处理异常方式    throw的作用    throws的作用    方法原理    举例    总结 个人实例 1.java处理异常方式 在java代码中如果发生异常的话,jvm会抛出 ...

  4. [ 原创 ] Java基础9--final throw throws finally的区别

    final修饰的类不可被继承,final修饰的方法可以被继承但不能被重写(覆盖) final用于可以声明属性和方法,分别表示属性的不可变及方法的不可覆盖.不是方法的不可继承 throw是用来明确地抛出 ...

  5. JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别

    JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间 ...

  6. Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)

    Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)

  7. java中的throw与throws的区别

    什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...

  8. Java中的throw和throws的差别

    Java中的throw和throws的差别 1.throwkeyword用于方法体内部.而throwskeyword用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常 ...

  9. Java中的throw和throws的区别

    Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...

随机推荐

  1. spring项目使用mave将第三方jar包打进war包中

    背景:一个标准的ssm项目,需要使用到第三方jar,现需要将项目发布到liunx的服务器上,将项目打成war包,第三方war包也需要打进去 首先是直接打包,发现第三方jar包并没有打进去......蛋 ...

  2. django2.2(一)

    限制请求method 什么是method 1.通常客户端请求服务器获取资源为GET方式 2.客户端提交数据给服务器端数据为POST方式 method限制请求 如果要限制请求,比如客户端只允许用GET方 ...

  3. pymysql 增删改 查 索引

    pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...

  4. 通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题)

    今日作业:通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题) server(服务端) import socket from mult ...

  5. 3DMax下载与安装(注册机为网上收集,仅供学习与研究,支持正版)

    3DS Max 全称3D Studio Max,是Autodesk公司开发的三维动画制作和渲染软件(Autodesk AutoCAD 2012也是Autodesk公司的软件产品) 3DS Max广泛应 ...

  6. NOIP 2002 选数

    洛谷 P1036 选数 洛谷传送门 JDOJ 1297: [NOIP2002]选数 T2 JDOJ传送门 Description ​ 已知 n 个整数 x1,x2,-,xn,以及一个整数 k(k< ...

  7. Flask常用实列化参数

    Flask中实列化配置: app = Flask( __name__, template_folder=’temp’ , ...... ) >template_folder = "te ...

  8. PATA1031 Hello World for U

    参考代码: #include <cstdio> #include <cstring> int main() { char str[100], ans[40][40]; scan ...

  9. OpenStack总体架构概览&OpenStack核心组件介绍

    下面个是51CTO上一位朋友发布的O版OpenStack核心组件说明,总结的非常到位,所以我就不再造轮子了.~,~ https://down.51cto.com/data/2448945 私有云 公有 ...

  10. nlp语义理解的一点儿看法

    nlp领域里,语义理解仍然是难题! 给你一篇文章或者一个句子,人们在理解这些句子时,头脑中会进行上下文的搜索和知识联想.通常情况下,人在理解语义时头脑中会搜寻与之相关的知识.知识图谱的创始人人为,构成 ...