千锋20200310

在千锋“逆战”学习第27天

      每日一句:程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。
      今天学习了自定义异常和异常方法覆盖。
      明天继续努力。

作业

5.创建两个自定义异常类 MyException1 和 MyException2。要求:
      1) MyException1 为已检查异常,MyException2 为未检查异常
      2) 这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生异常的详细信息。

//检查异常
public class MyException1 extends Exception {
	public MyException1() {
	}

	public MyException1(String message) {
		super(message);
	}
}
//运行时异常
public class MyException2 extends RuntimeException {
	public MyException2() {
	}

	public MyException2(String message) {
		super(message);
	}
}

--------------------------------------------------------------------------
6.在上一题基础上补充代码

public class TestMyException {
	public static void main(String[] args) {
		int n;
		// 读入n
		Scanner sc = new Scanner(System.in);
		System.out.println("输入n的值:");
		n = sc.nextInt();
		try {
			m(n);
		} catch (MyException1 ex1) {
			// 输出ex1 相信的方法调用信息栈
			ex1.getMessage();
			ex1.printStackTrace();
		} catch (MyException2 ex2) {
			// 输出ex2的详细信息
			ex2.getMessage();
			// 重新抛出ex2
			throw ex2;
		}
	}

	public static void m(int n) throws MyException1 {// 声明抛出MyException1
		if (n == 1) {
			// 抛出MyException1,设定其详细信息为n==1
			throw new MyException1("n==1");
		} else {
			// 抛出MyException2,设定其详细信息为n==2
			throw new MyException2("n==2");
		}
	}
}

运行结果:

运行结果:
输入n的值:
1
question.q11.test06.MyException1: n==1
	at question.q11.test06.TestMyException.m(TestMyException.java:29)
	at question.q11.test06.TestMyException.main(TestMyException.java:13)
输入n的值:
2
Exception in thread "main" question.q11.test06.MyException2: n==2
	at question.q11.test06.TestMyException.m(TestMyException.java:32)
	at question.q11.test06.TestMyException.main(TestMyException.java:13)

--------------------------------------------------------------------------
8.有如下代码:

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 */ {
	}
}
A.throws java.io.IOException
B.throws java.io.FileNotFoundException,java.io.EOFException
C.throws java.sql.SQLException
D.不能抛出任何异常
在/*1*/处填入A B D,可以通过
在/*2*/处填入D,可以通过

--------------------------------------------------------------------------
10.有如下代码:

public class TestFinally {
	public static void main(String[] args) {
		System.out.println(ma());
	}

	public static int ma() {
		int b;
		Scanner sc = new Scanner(System.in);
		System.out.println("输入b");
		b = sc.nextInt();
		try {
			int n = 100;
			return n / b;
		} catch (Exception e) {
			return 10;
		} finally {
			return 100;
		}
	}
}
当读入b为100时,输出结果为:100
当读入b为0时,输出结果为:100
发布了40 篇原创文章 · 获赞 0 · 访问量 1142

猜你喜欢

转载自blog.csdn.net/qq_41841482/article/details/104781235
今日推荐