千锋Java&Day27课后作业

自定义异常,方法覆盖

5.(自定义异常)创建两个自定义异常类 MyException1 和 MyException2。

要求:
      1) MyException1 为已检查异常,MyException2 为运行时异常。
      2)这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生异常的信息。
class MyException1 extends Exception {
     public MyException1() {     
        super();    
      }
     public MyException1(String message) {    
         super(message);    
      } 
}
 class MyException2 extends RuntimeException {    
          public MyException2() {    
               super();            
          }   
          public MyException2(String message) {      
               super(message); 
          } 
}

6.(自定义异常)在上一题的基础上,把下面代码补充完整

 public class TestMyException{
     public static void main(String args[]){ 
        int n;
        //读入 n 
        try{
            m(n); 
        }catch(MyException1 ex1){
        //输出 ex1 详细的方法调用栈信息
         }catch(MyException2 ex2){
         //输出 ex2 的详细信息
         //并把 ex2 重新抛出
      }
}
public static void m(int n)_________ {
        //声明抛出 MyException1
         if (n == 1) {
             //抛出 MyException1
             //并设定其详细信息为“n == 1”
         }else {
               //抛出 MyException2
               //并设定其详细信息为“n == 2”
         }
    }
}
package com.peng.demo;
    public class TestMyException {  
        public static void main(String args[]) {   
             int n;      
               // 读入 n      
               try {      
                      m(n);      
               } catch (MyException1 ex1) {         
                  // 输出 ex1 详细的方法调用栈信息      
               } catch (MyException2 ex2) {       
                  // 输出 ex2 的详细信息        
                  // 并把 ex2 重新抛出                     
                }       
      }   
       public static void m(int n) throws MyException1 { 
           // 声明抛出 MyException1   
                if (n == 1) {     
                       // 抛出 MyException1       
                       throw new MyException1("n==1");          
                        // 并设定其详细信息为“n == 1”       
                 } else {      
                       // 抛出 MyException2        
                       throw new MyException1("n==2");       
                       // 并设定其详细信息为“n == 2”      
                  } 
      }
 }
  class MyException1 extends Exception {   
         public MyException1() {      
            super(); 
         }  
         public MyException1(String message) {    
             super(message); 
         }
   } 
   class MyException2 extends RuntimeException {
        public MyException2() {    
             super();  
        } 
        public MyException2(String message) {     
              super(message);   
        } 
 }

8.(方法覆盖)有如下代码

import java.io.IOException; 
 class Super{
      public void ma() throws IOException{}
 }
 interface IA{ 
       void mb();
 }
 public class MySub extends Super implements IA{
      public void ma() 
      //1______{}
      public void mb() 
      //2______{}
   }
   问: 在//1 处,填入以下______代码可以编译通过,//2 处,填入______代码可以编译通过。
   A.throws java.io.IOException
   B.throws java.io.FileNotFoundException, java.io.EOFException
   C.throws java.sql.SQLException
   D.不能抛出任何异常。
1:AB
在2:D

10.(try-catch-finally)有如下代码

public class TestFinally{
     public static void main(String args[]){
         System.out.println ( ma() );
     }
     public static int ma(){
         int b;
         //读入 b
         try{
            int n = 100;
            return n/b;
         }catch(Exception e){
            return 10;
         }finally{
            return 100;
         }
     }
}
在 ma 中,当读入的 b 为 100 时,输出结果为_____,
当读入的 b 为 0 时,输出结果为______。
100
100

12.(方法覆盖)

import java.io.*;
 class MySuper{
     public void m() throws IOException{}
 }
 class MySub extends MySuper{
      public void m() throws EOFException{}
 }
 class MySub2 extends MySub {
      public void m() throws FileNotFoundException{}
 }
 以上代码是否能编译通过?如果不能,应该如何修改?
不能:重写方法异常小于等于父类
 import java.io.*; 
   class MySuper {    
       public void m() throws IOException { 
          }
   }
  class MySub extends MySuper {  
      public void m() throws EOFException {  
     } 
 } 
 class MySub2 extends MySuper { 
        public void m() throws FileNotFoundException {  
        }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值