Java周记11

本周学习

异常

复习

1.运行时异常,写代码时不报错,运行后报错,比如
(1)打印一个数除以0
(2)定义一个字符串,并赋初值NULL,然后打印它
(3)定义一个数组,然后打印超过数组边界的数据
2.编译时异常,编写代码时就会显示错误
比如FileReader file=new FileReader(“D:\a.txt”);
即使导包也会报错,必须加入try-catch块
3.try-catch可以嵌套,但一般不用,让try后跟多个catch块

try{
  语句一
      try{
          语句二
      }catch(){
             语句一的处理
       }
}catch(){
   语句二的处理
}
try{
  语句一
  语句二
  }catch(){
             语句一的处理
  }catch(){
            语句二的处理
}

4.finally语句紧跟在catch语句后面,不管异常有没有发生都会执行,try语句里的语句finally语句里是看不见的
5.所有的异常都在lang包里
6.

//一
try{
  FileReader cin = new FileReader("D:\\a.txt");
  char ch = (char)cin.read();
  System.out.println(ch);
}catch(FileNotFoundException e){      //1
  e.printStackTrace();
}catch(IOException e){       //2
  e.printStackTrace();
}
//二
try{
  FileReader cin = new FileReader("D:\\a.txt");
  char ch = (char)cin.read();
  System.out.println(ch);
}catch(IOException e){        //3
  e.printStackTrace();
}catch(FileNotFoundException e){      //4
  e.printStackTrace();
}

IOException是FileNotFoundException的父类,在“二”处,不管哪条语句出错都会转向3处的catch,4处的catch就被忽略了,所以4处的catch可以省略。而在“一”处就需要两个catch
7.自定义异常
异常父类:Exception(编译时异常),RuntimeException(运行时异常)
自定义异常IlleagalAgeException,继承RuntimeException:

class IlleagalAgeException extends RuntimeException{  //当年龄为负数时抛出异常
  public IlleagalAgeException(){
  }
  public IlleagalAgeException(String m){
       super(m);
    }
}
public void setAge(int age)throws IlleagalAgeException{
  if(age<0){throws new IlleagalAgeException("年龄不能小于零");}
  this.age=age;
}

作业八

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页