1.创建一个 Java 数组,然后访问不存在的数组数据,看看会抛出什么异常
public class Test0601 {
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6};
System.out.println(arr[6]);
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at com.csdn.c4.Test0601.main(Test0601.java:8)
数组越界 -->>指使用非法索引访问数组。索引为负值或大于或等于数组的大小。
2.执行代码 System.out.println(1 / 0),看看会抛出什么异常
public class Test0602 {
public static void main(String[] args){
System.out.println(1/0);
}
}
Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.csdn.c4.Test0602.main(Test0602.java:7)
算术异常
3.结合 Java 对象的知识,依据图 2,创建一个 Human 类,增加一个性别属性,并且 在性别的 setter 方法里如果性别不为「男」或「女」抛出图 2 的 GenderException 自定义异常(定义全部的四种构造器,并且以这四种方式抛出异常)
public class Test0603 {
public static void main(String[] args) throws GenderException{
Human a =new Human();
a.setGender("a");
}
}
public class Human {
static String gender;
public void setGender(String s) throws GenderException{
GenderException g= new GenderException();
if (!s.equals("男") && !s.equals("女")){
// throw new GenderException("");
// throw new GenderException("性别错误");
// throw new GenderException("性别错误",g);
throw new GenderException("性别错误",g);
}
else {
gender = s;
System.out.println(s);
}
}
}
public class GenderException extends Exception {
//构造方法1:无参数
public GenderException(){
super();
}
//构造方法2:有字符串参数
public GenderException(String message){
super(message);
}
//构造方法3:有字符串和Throwable类参数,表明异常可抛出
public GenderException(String message,Throwable cause){
super(message,cause);
}
//构造方法4:有Throwable类参数,表明异常可抛出
public GenderException(Throwable cause){
super(cause);
}
}
4.笔记
略