java作业6

1. 简述Java Error类与Exception类的区别。
Exception:
可以是可被控制或不可控制的,表示一个由程序员导致的错误,程序可以继续对抛出的异常进行捕获和相应的处理。
Error:
总是不可控制的。经常用来用于表示系统错误或低层资源的错误,不需要程序进行捕获和处理
2. 简述异常处理的两种方式,并举例说明区别。
1.声明抛出处理:
(1)RunTimeException或其子类的异常,属于默认声明抛出。可以对其不做任何声名抛出或处理,交由调用该方法的地方处理,编译时不会对可能产生异常地方给出提示;
(2)其他异常类必须显示声明抛出。 例如
public static void main(String args[]) throws IOExceprion;
2.程序捕获处理:
通过使用try - catch - finally语句块,用来对可能产生异常的代码产生的异常进行捕获,并根据其异常类型进行不同的操作。
3. 选取RuntimeException类的五个子类,编写抛出并捕获上述子类异常的程序。(例如算术异常,空指针异常,类转换异常,数组越界异常等)

class TestEmptyStack {
	public static void main(String[] args){//空栈异常
  	 	Stack st = new Stack();
  	 	Object ob = st.pop();  
	}
}
public static void main(String[] args){	//算数异常
    int a,b,c;
	a=67; b=0;
	c=a/b;
	System.out.println(a+"/"+b+"="+c);
}
public class TestArray {//空指针异常
	 private static int[] x;
	 public  static void main(String[] args) {
		System.out.println(x[0]);
	 }
 }
public class TestArgs {//数组越界异常
	 public static void main( String[] args) {
		 String foo = args[1];		 
		 System.out.println("foo = " + foo);
	 }
 }
public static void main(String[] args) {// 类型强制转换异常
    Object x = new String("String");
    System.out.println((Integer) x);
}


4. 仿照例7.9,自定义一个异常类,并在某场景下抛出该异常对象。

public class Test{
    public static String output=""
    public static void f(int i){
        try{
            if(i==1){throw new Exception();}
        }
        catch(Exception e){
            output+="1";
        }
        finally {output +="3";}
    }
public static void main(String[]args){
    f(1);
    System.out.println(Test.output);

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页