Java中以年龄不能为负数字符串为参数创建异常对象并抛出
时间: 2024-02-01 10:15:57 浏览: 27
可以使用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岁
```
如何判断字符串是否为数字(包括负数
可以使用正则表达式来判断一个字符串是否为数字,包括负数、整数和小数。以下是一个示例代码:
```
String str = "-123.45";
boolean isNumeric = str.matches("-?[0-9]+(\\.[0-9]+)?");
```
其中,`-?`表示可选的负号,`[0-9]+`表示至少一个数字,`(\\.[0-9]+)?`表示可选的小数部分,其中`\\.`表示小数点,`[0-9]+`表示至少一个数字。如果字符串符合这个正则表达式,那么它就是一个数字。
另外,也可以使用Java自带的`Double.parseDouble()`方法来将字符串转换为数字,如果字符串不是数字,则会抛出`NumberFormatException`异常。例如:
```
String str = "-123.45";
try {
double num = Double.parseDouble(str);
// 字符串是数字,可以进行相应的操作
} catch (NumberFormatException e) {
// 字符串不是数字,进行异常处理
}
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)