java异常

下述程序段,哪些程序编译通不过

程序段1
import java.io.*;
public class ExceptionTest{
        public static void main(String[] args){
                try{
                        test();
                }catch(Exception ex){
                        //ex.printStackTrace();
                        System.out.println("main");
                }
        }
        static void test(){
                try{
                        throw new Exception("test");
                }catch(Exception ex){
                        ex.printStackTrace();
                        System.out.println("test");
                }
        }
}

程序段2:

import java.io.*;
public class ExceptionTest{
        public static void main(String[] args){
                try{
                        test();
                }catch(Exception ex){
                        //ex.printStackTrace();
                        System.out.println("main");
                }
        }
        static void test(){
            
               throw new Exception("test");
        
        }
}
程序段3:

import java.io.*;
public class ExceptionTest{
        public static void main(String[] args){
                try{
                        test();
                }catch(Exception ex){
                        //ex.printStackTrace();
                        System.out.println("main");
                }
        }
        static void test() throws Exception{

                        throw new Exception("test");
        
        }
}

程序段4

import java.io.*;
public class ExceptionTest{
        public static void main(String[] args){
                try{
                        test();
                }catch(Exception ex){
                        ex.printStackTrace();
                        System.out.println("main");
                }
        }
        static void test() throws Exception{
        }
}

程序段5

import java.io.*;
public class ExceptionTest{
        public static void main(String[] args){
                test();
        }
        static void test(){
                try{
                        throw new Exception("test");
                }catch(Exception ex){
                        ex.printStackTrace();
                        System.out.println("test");
                }
        }
}


程序段2编译通不过:

ExceptionTest.java:13: 错误: 未报告的异常错误Exception; 必须对其进行捕获或声明以便抛出
			throw new Exception("test");
			^
1 个错误

throw:抛出异常

throws:声明异常


1、抛出异常而在本程序段中没有捕获的话,必须有声明异常语句,如:程序段3

2、抛出异常而在本程序段中将其捕获,则不需要声明异常

3、只要声明了异常,就必须捕获,而不管是否真的抛出异常。


你可能感兴趣的:(java程序面试宝典)