练习题:

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. linux命令总结之ls命令

    ls命令是linux下最常用的命令之一,ls跟dos下的dir命令是一样的都是用来列出目录下的文件,下面我们就来一起看看ls的用法 英文全名:List即列表的意思,当我们学习某种东西的时候要做到知其所 ...

  2. python lambda表达式与三元运算

    1.三元运算 格式: 为真时的结果 if 判定条件 else 为假时的结果 #!/usr/bin/python # -*- coding: UTF-8 -*- def f(x, y): # 如果x大于 ...

  3. Java并发编程原理与实战二十五:ThreadLocal线程局部变量的使用和原理

    1.什么是ThreadLocal ThreadLocal顾名思义是线程局部变量.这种变量和普通的变量不同,这种变量在每个线程中通过get和set方法访问, 每个线程有自己独立的变量副本.线程局部变量不 ...

  4. 解析XML文件的几种常见操作方法:DOM/SAX/DOM4j

    <?xml version="1.0" encoding="utf-8"?> <root> <class name="c ...

  5. python核心编程笔记——Chapter8

    Chapter8.条件和循环 这一章感觉有用的点并不多,在我眼里就只有迭代器,列表解析和生成器表达式值得研究而已. 8.2.循环,难度不大. #!usr/bin/env python #-*-codi ...

  6. soj1564. HOUSING

    1564. HOUSING Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description For the Youth Olympic ...

  7. R8—批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数

    一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到 ...

  8. PHP面向对象__set(赋值方法)

    //类Ren里面的变量都是私有的,子类$r里面直接取是取不到的,正常给变量赋值的方法为$r->__set("age",20);,但是可以直接写成$r->age = 20 ...

  9. POJ 1986 Distance Queries (Tarjan算法求最近公共祖先)

    题目链接 Description Farmer John's cows refused to run in his marathon since he chose a path much too lo ...

  10. 【译】第七篇 Integration Services:中级工作流管理

    本篇文章是Integration Services系列的第七篇,详细内容请参考原文. 简介在上一篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcur ...