求圆面积自定义异常类
计算圆的面积,其中PI取3.14,圆半径为负数时应抛出异常,输出相应提示。根据提供的主类信息,编写Circle类和CircleException类,以及在相关方法中抛出异常。
函数接口定义:
裁判测试程序:
在这里给出主类
import java.util.*;
public class Main {public static void main(String[] args) {
double s=0;
Scanner sc=new Scanner(System.in);
double r1,r2;
r1=sc.nextDouble();
r2=sc.nextDouble();
Circle c1=new Circle(r1);
Circle c2=new Circle(r2);
try{
s = c1.area();
System.out.println(s);
s = c2.area();
System.out.println(s);
}
catch (CircleException e){
e.print();
}
}
}/* 请在这里填写答案 编写Circle 和CircleException类*/
输入样例:
在这里给出一组输入。例如:
3.5 -3.5
输出样例:
在这里给出相应的输出。例如:
38.465
圆半径为-3.5不合理
由于程序在try语句中会调用area()方法,所以我们可以在Circle类中的area()方法中加上判断半径r是否会产生异常,如果圆的半径小于零,就说明产生了异常,这时我们手动创建一个异常对象(一般的,SUN公司自己的异常类,当产生异常时,会自动创建一个异常对象),并将异常对象抛出(这里处理异常有两种方法,抛出异常和利用try..catch语句抓住异常,这里我选择的是抛出异常),throw e;语句即为抛出语句,由于area()方法在声明时后面有throws CircleException语句(抛出CircleException异常),所以说明我们将异常抛给了调用area()方法的地方(即主方法中),调用的地方选择用tyr..catch语句来处理异常,所以catch语句中调用print()方法,来处理异常。
class Circle{double r;Circle(double r) {this.r = r;}public double area() throws CircleException{if(r<0){//判断异常是否会产生CircleException e = new CircleException(r);//在创建对象时将半径赋值给CircleException对象throw e;//抛出异常}return 3.14*r*r;}
}
class CircleException extends Exception {double r;CircleException(double r){//有参数的构造方法this.r = r;}public void print () {//被调用的print语句System.out.println("圆半径为"+r+"不合理");}
}
异常处理最近才学习,讲解的不是很清楚,望采纳。
求圆面积自定义异常类相关推荐
- 6-2 求圆面积自定义异常类 (15分)
计算圆的面积,其中PI取3.14,圆半径为负数时应抛出异常,输出相应提示.根据提供的主类信息,编写Circle类和CircleException类,以及在相关方法中抛出异常. 函数接口定义: 裁判测试 ...
- Java求圆面积自定义异常类
计算圆的面积,其中PI取3.14,圆半径为负数时应抛出异常,输出相应提示.根据提供的主类信息,编写Circle类和CircleException类,以及在相关方法中抛出异常. 函数接口定义: 裁判测试 ...
- python自定义异常类一般继承于_自定义异常类一般继承自_______或其子类。
[填空题]Python语句print('%d%%%d'%(3/2, 3%2))的运行结果是( 1 ). [填空题]自定义异常类一般继承自_______或其子类. [填空题]Python语句" ...
- java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为"XYZ",则抛出一个异常信息"This is a XYZ",如果从命令 ...
- 自定义异常类: 运行期间跟编译期间的区别
1.自定义异常一: 继承RuntmeExcepyion,即运行期间异常; 由于我们自定义的是运行期间的异常,我们抛出异常,程序始终不作处理,程序编译的时候不会报错,但是运行的时候会报错 ...
- java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...
java+自定义异常类+输入若干成绩 为 [2021-02-10 19:00:54] 简介: java中定义类的关键字是:"class".在Java中定义一个类,需要使用&quo ...
- Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常
Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常 参考文章: (1)Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并 ...
- 在你的代码中使用自定义异常类
在你的代码中使用自定义异常类 参考文章: (1)在你的代码中使用自定义异常类 (2)https://www.cnblogs.com/evens-word/p/7991329.html 备忘一下.
- 如何编写和应用Java的自定义异常类
11.7.1 编写自定义异常类的模式 编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class Cus ...
最新文章
- call/apply以及this指向的理解
- 题解 CF682C 【Alyona and the Tree】
- char装cstring_VC中char*转换为CString
- 小小在线教授何为BTC跳矿(教授如何在线扩大收益)
- bzoj 1109: [POI2007]堆积木Klo(二维偏序)
- Python学习(5)——内置函数
- 思岚科技A1,A2雷达驱动安装
- Android Studio 错误记录:If you already have a 64-bit JDK installed ,defined a JAVA_HOME variable..
- DGIOT 工业物联网开源平台简介
- Android安全之使用root权限绕过检测机制,强行自动允许应用的悬浮窗/应用后台弹出界面等权限
- NVMe Driver 需要装吗_厨房里的油烟很少,需要装油烟净化器吗?装哪种的比较好?...
- win10家庭版使用远程桌面方法
- cannot be cast to com.baomidou.mybatisplus.core.metadata.IPage
- 从0开始学习 GitHub 系列之「04.向GitHub 提交代码」----转载自stormzhang 原创文章
- Coursera | Andrew Ng (02-week-1-1.12)—梯度的数值逼近
- java 横向 打印出来_在双工模式下使用Java打印横向文档
- 培训-从学员的角度思考问题
- javascript-arguments.callee的作用
- 图层样式之:内发光、外发光
- MD5是用来加密的吗?BCrypt又是什么呢