编写程序,定义一个 circle 类,其中有求面积的方法,当圆的半径小于 0时,抛出一个自定义的异常。
class lenghException extends Exception
{
private double value;
lenghException(String msg,double value)
{
super(msg);
this.value=value;
}
public double getValue()
{
return value;
}
}
public class circle
{
private double r;
static final double PI=3.14;
public void setR(double r)throws lenghException
{
if (r<0)
throw new lenghException("出现了半径小于 0 的情况,你的半径
不能为负数",r);
this.r=r;
}
public void getarea()
{
System.out.println(r*r*PI);
}
public void getlengh()
{
System.out.println(2*r*PI);
}
}
class CircleExceptionDemo {
public static void main(String[] args) throws lenghException {
circle circle = new circle();
try {
circle.setR(5);
circle.getarea();
circle.getlengh();
} catch (lenghException e) {
System.out.println(e.toString());
System.out.println("错误的数是:" + e.getValue());
}
circle circle2 = new circle();
try {
circle2.setR(-2);
circle2.getarea();
circle2.getlengh();
} catch (lenghException e) {
System.out.println(e.toString());
System.out.println("错误的数是:" + e.getValue());
}
}
}
编写程序,从键盘读入 5 个字符放入一个字符数组,并在屏幕上显示。在程序中处理数组越界的异常。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class readchar {
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("请输入五个字符: ");
String text = buf.readLine();
char c[] = new char[5];
try {
for (int i = 0; i < text.length(); i++) {
c[i] = text.charAt(i);
System.out.print(c[i]);
}
} catch (ArrayIndexOutOfBoundsException ex) {
System.out.println();
System.out.println("输入字符超出要求,只显示前五个字符");
}
}
}
编写 Java Application,要求从命令行以参数形式读入两个数据,计算它们的和,然后将和输出。对自定义异常OnlyOneException 与NoOprandException进行编程。如果参数的数目不足,则显示相应提示信息并退出程序的执行。
class NoOprandException extends Exception{
NoOprandException(){
super("没有输入数据,参数数目不足,退出此程序,请输入两个数
据!");
}
}
class OnlyOneException extends Exception{
OnlyOneException(){
super("只输入了一个数据,参数数目不足,退出此程序,请输入两个
数据!");
}
}
public class ExceptionTest
{
public static void main(String[] args) throws
NoOprandException,OnlyOneException {
try{
if(args.length==0) {
throw new NoOprandException();
}
if(args.length==1) {
throw new OnlyOneException();
}
double x=Double.parseDouble(args[0]);
double y=Double.parseDouble(args[1]);
System.out.println("输入的两数之和为:"+(x+y));
}
catch(Exception e){
e.printStackTrace();
}
}
}
以上是今天要讲的内容,学习了异常处理。