练习题:

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学习(异常类练习题)的更多相关文章

  1. Java学习-023-Properties 类 XML 配置文件读取及写入源代码

    之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFr ...

  2. Java学习——BigInteger类和BigDecimal类

    Java学习——BigInteger类和BigDecimal类 摘要:本文主要学习了用于大数字运算的BigInteger类和BigDecimal类. 部分内容来自以下博客: https://www.c ...

  3. Java学习——枚举类

    Java学习——枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...

  4. Java学习——日期类

    Java学习——日期类 摘要:本文主要记录了Java开发中用到的和日期有关的类以及对日期的操作. 部分内容来自以下博客: https://www.cnblogs.com/talk/p/2680591. ...

  5. 初学java之异常类

    //异常类 package st; public class example_1 { public static void main(String args[]) { int n=0,m=0,t=10 ...

  6. java 学习笔记——类之间的关系之封装、继承与多态的详解

    封装 一个封装的简单例子 封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联 ...

  7. [Java学习]面向对象-类的继承;方法覆盖

    一.类的继承 实现方法: public Class SubClass extends SuperClass{ } 继承最基本作用: 代码重用. 继承最重要的作用: 方法可以重写. 关于类的继承: 子类 ...

  8. 【Java】异常类处理层次

    异常处理简介 异常在java的开发中可能没有那么被重视.一般遇到异常,直接上抛,或者随便catch一下处理之后对于程序整体运行也没有什么大的影响.不过在企业级设计开发中,异常的设计与处理的好坏,往往就 ...

  9. JAVA常用异常类

    算数异常类:   ArithmeticExecption 空指针异常类:    NullPointerException 指定类不存在:    ClassNotFoundException 字符串转换 ...

随机推荐

  1. Hadoop生态圈-hbase常用命令

    Hadoop生态圈-hbase常用命令 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  2. 跨域问题 Uncaught DOMException: Blocked a frame with origin。。。

    第三方系统内嵌 到iframe中的 跨域问题. 解决方案: http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html

  3. PHP里echo print print_r的区别

    echo ,print的区别在于echo 可以输出多个变量值,而print只有一个变量,做为一个字符串输出. 另一点区别在于echo 没有返回值,print有返回值1.print不能输出数组和对象. ...

  4. CentOS安装Confluence Wiki步骤

    参考:http://supernetwork.blog.51cto.com/2304163/1187066 参考:http://yjiang.tk/?p=1085   需要的文件 CentOS-6.5 ...

  5. Ubuntu16.04.2安装Tensorflow

    安装aptitude $ sudo apt-get install aptitude 安装python-pip python-dev $ sudo aptitude install python-pi ...

  6. HBase基本概念

    HBase是什么 HBase构建在 HDFS 之上的分布式列式键值存储系统.HBase内部管理的文件全部存储在HDFS中. HBase VS HDFS HDFS适合批处理场景 不支持数据随机查找 不适 ...

  7. Web Api问题汇总

    在公网上布署Web Api的时候,不能调用,返回404 在web.config中 Adding the following to the web.config file worked for me: ...

  8. don't run elasticsearch as root.

    因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户 第一步:liunx创建新用户  adduser XXX    然后给创建的用户加密码 passwd XXX    ...

  9. Vim,Emacs排名不分先后

    关键词:Vim,Emacs,Vim和Emacs之争 一同时提到vim和emacs,就几乎一定引发关于哪个更好的圣战.据说这个圣战从很早就开始了,偶尔还会有windows下的ultraedit的用户来凑 ...

  10. Celery异步任务队列/周期任务+ RabbitMQ + Django

    一.Celery介绍和基本使用  Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celer ...