package homework6;import java.util.Scanner;
import java.util.InputMismatchException;
public class Test { public static void main(String[] args) {
try{
foo();
}catch(MyStrChkException e){
System.out.println("触发自定义异常!");
System.out.println(e.getContent());
}catch(InputMismatchException e){
System.out.println("数字格式异常");
}catch(Exception e){
System.out.println("程序结束!");
}
}
public static void foo()throws MyStrChkException{
Scanner input = new Scanner(System.in);
double y, c;
System.out.println("请输入除数");
y=input.nextInt();
if(y==0){
input.close();
throw new MyStrChkException("除数不能为0");
}
c=10/y;
System.out.println("10/y="+c);
input.close();
}
class MyStrChkException extends Exception{
private static final long serialVersionUID=1L;
private String content;
public MyStrChkException(String content){
this.content = content;
}
public String getContent(){
return content;
}
}
}
import java.util.InputMismatchException;
public class Test { public static void main(String[] args) {
try{
foo();
}catch(MyStrChkException e){
System.out.println("触发自定义异常!");
System.out.println(e.getContent());
}catch(InputMismatchException e){
System.out.println("数字格式异常");
}catch(Exception e){
System.out.println("程序结束!");
}
}
public static void foo()throws MyStrChkException{
Scanner input = new Scanner(System.in);
double y, c;
System.out.println("请输入除数");
y=input.nextInt();
if(y==0){
input.close();
throw new MyStrChkException("除数不能为0");
}
c=10/y;
System.out.println("10/y="+c);
input.close();
}
class MyStrChkException extends Exception{
private static final long serialVersionUID=1L;
private String content;
public MyStrChkException(String content){
this.content = content;
}
public String getContent(){
return content;
}
}
}
解决方案 »
- 大家都来谈谈自己对面向对象的认识吧,高分送上,虚心学习!
- 请高手诊断我的聊天室程序
- 求 运用Java的反射机制,输出java.util.Set接口和java.util.HashMap函数列表.
- 如何取不重复的随机数?在线等帮助!
- 为什么有时候我的父进程stop了,但是子进程还在运行?
- 流结束时in.read()返回-1,请问如何判断流结束?
- 如何读出文件中的数据
- 在eclipse 3.0m9中怎样设置jsp编辑调试环境(在线)
- java版严重的问题,新鸟老鸟都进来看看吧
- 请问com.ibm.ejs.dbm.jdbcext.*这个包从哪里可以找到,多谢!!
- Object.clone()在自定义类中不可见?
- 求助:repaint()被无限调用
1、在class MyStrChkException{....}的class前面加上static,将其声明为static的成员,main方法就可以直接访问了。
2、throw new MyStrChkException("除数不能为0");改为throw new Test().new MyStrChkException("除数不能为0");
同样是针对static关键字的修改方式,先new一个Test类的对象,再通过这个对象new出它的内部类的实例对象
3、直接将MyStrChkException定义为外部类。