Java中以年龄不能为负数字符串为参数创建异常对象并抛出
时间: 2024-02-01 16:15:57 浏览: 88
可以使用Java提供的IllegalArgumentException类来创建一个年龄不能为负数的异常,并抛出该异常。以下是一个示例代码:
```
public void setAge(String ageStr) throws IllegalArgumentException {
int age = Integer.parseInt(ageStr);
if (age < 0) {
throw new IllegalArgumentException("年龄不能为负数!");
}
// 如果年龄正常,则进行其他操作
}
```
在上述代码中,我们先将输入的年龄字符串转换为整型数值,然后判断该数值是否小于0。如果小于0,则创建一个IllegalArgumentException异常对象,并抛出该异常;否则,我们可以继续进行其他操作。
相关问题
1、定义异常类MyException继承自Exception类,其无参及有参的构造方法分别调用父类的无参及有参的构造方法,其中有参的构造方法的参数为字符串 2、定义类Student,内含: 私有的成员变量String类的name和int类的 age。与name和age对应的set和get成员方法。 3、在setAge()方法中,需要对age是否是负数进行判断,如果是负数,以“年龄不能为负数”字符串为参数创建异常对象并抛出 4、setAge()方法声明抛出一个异常MyException 5、定义测试类TestE,在其mainO方法中完成以下任务: 1)创建Student类的对象stu,调用stu对象的setName()方法给name赋值“张三”; 2)调用stu对象的setAgeO方法给age赋值-20,并利用try……catch异常捕获机制对其进行处理,显示异常信息:“年龄不能为负数”和“张三的年龄为:0岁”;
代码实现如下:
MyException.java
```
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
}
```
Student.java
```
public class Student {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) throws MyException {
if (age < 0) {
throw new MyException("年龄不能为负数");
}
this.age = age;
}
public int getAge() {
return age;
}
}
```
TestE.java
```
public class TestE {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("张三");
try {
stu.setAge(-20);
} catch (MyException e) {
System.out.println(e.getMessage());
} finally {
System.out.println(stu.getName() + "的年龄为:" + stu.getAge() + "岁");
}
}
}
```
输出结果:
```
年龄不能为负数
张三的年龄为:0岁
```
1、自定义一个异常类,重载构造函数,可以传入异常字符串 2、创建Circle类,创建area方法,参数为半径,判断如果半径为负数,抛出自定义异常对象 3、main方法中使用try-catch捕获
当然,首先我们来创建一个自定义的异常类,名为`NegativeRadiusException`,它会接受一个异常字符串作为额外信息:
```java
public class NegativeRadiusException extends Exception {
private String message;
public NegativeRadiusException(String message) {
super(message);
this.message = message;
}
@Override
public String getMessage() {
return "半径不能为负:" + message;
}
}
```
接下来,我们定义一个`Circle`类,其中包含一个计算面积的方法`getArea`,该方法会检查输入的半径是否为负,并在必要时抛出`NegativeRadiusException`:
```java
public class Circle {
private double radius;
public Circle(double radius) {
if (radius < 0) {
throw new NegativeRadiusException("半径不能是负数");
}
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
```
最后,在`main`方法中,我们会使用`try-catch`结构来处理可能出现的`NegativeRadiusException`:
```java
public static void main(String[] args) {
try {
Circle circle = new Circle(-5); // 这将引发异常
System.out.println("圆的面积: " + circle.getArea());
} catch (NegativeRadiusException e) {
System.out.println(e.getMessage()); // 打印错误信息
}
}
```
在这个例子中,如果你尝试用负值初始化一个`Circle`实例,程序会捕获到异常并打印出相应的错误信息,而不是直接崩溃。
阅读全文