java自定义异常和throw、throws的使用
一、自定义异常类
我们知道所有的异常都是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的使用的更多相关文章
- java异常处理之throw, throws,try和catch
转自 http://blog.csdn.net/zhouyong80/article/details/1907799 程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...
- 【Java】异常 —— throw, throws, try catch 相关内容
嗯……面试考到了这个,又是一个如无意外 那么接下来就总结吧 一.什么是异常 程序运行过程中发生的异常事件. RuntimeException通常是因为编程员因为疏忽没有检查而引起的错误. 二.Exce ...
- Java 错误结果Throw/Throws
目录 java处理异常方式 throw的作用 throws的作用 方法原理 举例 总结 个人实例 1.java处理异常方式 在java代码中如果发生异常的话,jvm会抛出 ...
- [ 原创 ] Java基础9--final throw throws finally的区别
final修饰的类不可被继承,final修饰的方法可以被继承但不能被重写(覆盖) final用于可以声明属性和方法,分别表示属性的不可变及方法的不可覆盖.不是方法的不可继承 throw是用来明确地抛出 ...
- JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别
JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间 ...
- Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
- java中的throw与throws的区别
什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...
- Java中的throw和throws的差别
Java中的throw和throws的差别 1.throwkeyword用于方法体内部.而throwskeyword用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常 ...
- Java中的throw和throws的区别
Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...
随机推荐
- SwitchGame---MybatisPLus
//实体类package com.example.spring.entity; import cn.afterturn.easypoi.excel.annotation.Excel;import cn ...
- 使用docker创建mongodb
1.创建 MongoDB 数据卷 docker volume create mongo_data_yapi 2.启动 MongoDB docker run -d --name mongo-yapi - ...
- mysql系列2 权限相关
mysql授权认证 请注意(大坑):mysql8.0以前的版本可以使用grant在授权的时候隐式的创建用户,8.0以后已经不支持,所以必须先创建用户,然后再授权!! 例子: 在170mysql主机上授 ...
- 【JavaScript】BOM对象——Window对象&History对象&Location 对象
1.Window对象: 表示浏览器中打开的窗口 setInterval():它有一个返回值,主要是提供给 clearInterval 使用. setTimeout():它有一个返回值,主要是提供给 c ...
- java接口顺口溜
原创作品,转载请注明来源,这篇博客我也发到了我的csdnhttps://blog.csdn.net/suyues/article/details/103458086 接口 接口定义全局变量和抽象方法 ...
- centos服务器部署flask项目。
已安装的环境nginx,python3,mysql,uwsgi,virtualenv 1,创建虚拟环境 virtualenv -p python3 myblog 2,进入虚拟环境 source myb ...
- Caused by: java.lang.ClassNotFoundException: Cannot find class:
Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibat ...
- ubuntu使用anaconda安装tensorflow
https://blog.csdn.net/shiheyingzhe/article/details/80863422 https://blog.csdn.net/sheyanshangjiang/a ...
- Java XML文档
概念 XML(EXtensible Markup Language),可扩展标记语言.可扩展就是<>内的东西可以自己定义,可以随便写.标记语言就是加了<>符号的 .HTML是超 ...
- this指向问题(改变它的指向)
这个问题倒不是面向对象的,而是今天遇到js面向对象的时候一个例子的时候突然遇到了,call()方法,然后自己突然发现竟然忘记了,查了之后整理如下: xxx.call((对象名),参数a,参数b) xx ...