Java学习(异常类练习题)
练习题:
1.计算圆的面积,半径不能为零和负数
package com.oracle.Demo01;
public class Demo02 {
// 写一个计算圆的面积的方法,传一个半径,返回面积
public static void main(String[] args) {
double s=0;
s = area(-4);
System.out.println(s);
}
public static double area(double r){
try {
if(r<=0){
throw new RuntimeException(); //RuntimeException 运行异常,不会声明,不会处理异常,直接报错并且停止
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
double s=Math.PI*r*r;
return s;
}
}
2.求平均数,参数不能为负数
package com.oracle.Demo01;
import java.util.Scanner;
public class Demo03 {
//现在要创建一个检测负数的异常类,如果是正数,则抛出异常
public static void main(String[] args){
/*double s=0;
s = area(9);
System.out.println(s);*/
//输入任意参数,求平均数
double s=avg(1,9,6,5,2);
System.out.println(s);
}
public static double area(double r){
if(r<=0){
throw new FuShuException("你传了一个负数"); //报异常并传递自定义的字符串
}
double s=Math.PI*r*r;
return s;
}
//求平均数的方法
public static double avg(double...arr){
double sum=0;
for(double i:arr){
if(i<0){
throw new FuShuException("参数为负数");
}
sum=sum+i;
}
return sum/arr.length;
}
}
自定义FuShuExecption类:
package com.oracle.Demo01;
//自定义类异常,继承自运行异常
public class FuShuException extends RuntimeException {
FuShuException(String mes){
super(mes);
}
}
3.检测年龄不能为负数和大于200岁
测试类:
package com.oracle.Demo01;
public class Demo04 {
public static void main(String[] args) throws NoAgesException {
method("阿易",110);
}
public static void method(String name,int age) throws NoAgesException{
Person p=new Person(name,age);
if(p.getAge()<0||p.getAge()>200){
throw new NoAgesException("年龄数值非法");
}
System.out.println(p.getName()+"..."+p.getAge());
}
}
Person类:
package com.oracle.Demo01;
public class Person {
private String name;
private int age;
Person(){
}
Person(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
自定义NoAgeExecption类:
package com.oracle.Demo01;
public class NoAgesException extends Exception {
NoAgesException(){ //声明父类的异常方法
super();
}
NoAgesException(String mes){
super(mes);
}
}
Java学习(异常类练习题)的更多相关文章
- Java学习-023-Properties 类 XML 配置文件读取及写入源代码
之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFr ...
- Java学习——BigInteger类和BigDecimal类
Java学习——BigInteger类和BigDecimal类 摘要:本文主要学习了用于大数字运算的BigInteger类和BigDecimal类. 部分内容来自以下博客: https://www.c ...
- Java学习——枚举类
Java学习——枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...
- Java学习——日期类
Java学习——日期类 摘要:本文主要记录了Java开发中用到的和日期有关的类以及对日期的操作. 部分内容来自以下博客: https://www.cnblogs.com/talk/p/2680591. ...
- 初学java之异常类
//异常类 package st; public class example_1 { public static void main(String args[]) { int n=0,m=0,t=10 ...
- java 学习笔记——类之间的关系之封装、继承与多态的详解
封装 一个封装的简单例子 封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联 ...
- [Java学习]面向对象-类的继承;方法覆盖
一.类的继承 实现方法: public Class SubClass extends SuperClass{ } 继承最基本作用: 代码重用. 继承最重要的作用: 方法可以重写. 关于类的继承: 子类 ...
- 【Java】异常类处理层次
异常处理简介 异常在java的开发中可能没有那么被重视.一般遇到异常,直接上抛,或者随便catch一下处理之后对于程序整体运行也没有什么大的影响.不过在企业级设计开发中,异常的设计与处理的好坏,往往就 ...
- JAVA常用异常类
算数异常类: ArithmeticExecption 空指针异常类: NullPointerException 指定类不存在: ClassNotFoundException 字符串转换 ...
随机推荐
- Hadoop生态圈-hbase常用命令
Hadoop生态圈-hbase常用命令 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- 跨域问题 Uncaught DOMException: Blocked a frame with origin。。。
第三方系统内嵌 到iframe中的 跨域问题. 解决方案: http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html
- PHP里echo print print_r的区别
echo ,print的区别在于echo 可以输出多个变量值,而print只有一个变量,做为一个字符串输出. 另一点区别在于echo 没有返回值,print有返回值1.print不能输出数组和对象. ...
- CentOS安装Confluence Wiki步骤
参考:http://supernetwork.blog.51cto.com/2304163/1187066 参考:http://yjiang.tk/?p=1085 需要的文件 CentOS-6.5 ...
- Ubuntu16.04.2安装Tensorflow
安装aptitude $ sudo apt-get install aptitude 安装python-pip python-dev $ sudo aptitude install python-pi ...
- HBase基本概念
HBase是什么 HBase构建在 HDFS 之上的分布式列式键值存储系统.HBase内部管理的文件全部存储在HDFS中. HBase VS HDFS HDFS适合批处理场景 不支持数据随机查找 不适 ...
- Web Api问题汇总
在公网上布署Web Api的时候,不能调用,返回404 在web.config中 Adding the following to the web.config file worked for me: ...
- don't run elasticsearch as root.
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户 第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX ...
- Vim,Emacs排名不分先后
关键词:Vim,Emacs,Vim和Emacs之争 一同时提到vim和emacs,就几乎一定引发关于哪个更好的圣战.据说这个圣战从很早就开始了,偶尔还会有windows下的ultraedit的用户来凑 ...
- Celery异步任务队列/周期任务+ RabbitMQ + Django
一.Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celer ...