千锋学习的27天:异常
五(自定义异常)创建两个自定义异常类MyException1和MyExecption2
要求:
1 MyException1为已检查异常,MyException2为运行时异常。
2 这两个异常均具有构造方法,一个无参,另一个有参,参数表示产生的异常信息
public class Testa {
public static void main(String[] args){
m1(10);
try {
m2(0);
}catch(MyException1 i) {
System.out.println(i.getMessage());
}
}
public static void m1(int n){
int a=100;
if(n==0) {
throw new MyException2("请输入一个大于m1的值");
}
int result=a/n;
}
public static void m2(int n)throws MyException1 {
int a=100;
if(n==0) {
throw new MyException1("请输入一个大于m2的值");
}
int result=a/n;
}
}
class MyException1 extends Exception{
public MyException1() {}
public MyException1(String getmessage) {
super(getmessage);
}
}
class MyException2 extends RuntimeException{
public MyException2() {}
public MyException2(String getmessage) {
super(getmessage);
}
}
六(自定义异常)在上一题的基础上,把下面代码补充完整
public class TestMyException{
public static void main(String args[]){
int n;
//读入一个N
try{
m(n);
}catch(MyException1 ex1){
//输出ex1 详细的方法调用栈信息
ex1.printstacktrace();
}catch(MyException2 ex2){
//输出ex2的详细信息
//并把ex2 重新抛出
System.out.println(ex2.getMessage());
throw new MyException();
}
}
public static void m(int n)__throws MyException{//声明抛出MyException1
if(n1){
//抛出MyException1
//并设置详细信息n1
throw new MyException(“n==1”);
}else{
//抛出MyException2
//并设定其详细信息为“n2”
**throw new MyException(“n2”);**
}
}
}
八(方法覆盖)有如下代码
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处,填入一下(AB)代码可以通过编译,在//2处。填入(D)代码一个编译通过
A throws java.io.IOException
B throw java.io.FileNotFoundException,java,io,EOFExceoption
C.throws java.sql.SQLException
D.不能抛出异常
十(try-cath-fianlly)有如下代码
public class TestFianlly{
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时,输出结果为(100),当读入的b为0是,输出的结果为(100);
十二(方法覆盖)
import java.io.*;
class MySuper{
public void m()throws IOExcepion{}
}
class MySub extends MySuper{
public void m() throws EOFException{}
}
class MySub2 extends Mysub{
public void m()throws FileNotFoundException{}
}
以上代码是否能编译通过?如果不能,应该如何修改?
不能通过编译
修改MySub 类m() throws EOFException,FileNotFoundException{}