这是代码,你多看几遍毕老师的视频,讲的很详细了,我的代码全是他视频里的。加油,我也是刚弄回。看到我哪里错了也帮我说出来,谢。
- //Exception:是所有异常的子类,在实例中一般都是抛出具体异常,多个异常存在时,函数上要全部声明,逗号隔开
- // 在函数内部,用相同个数的catch块捕获对应的异常;
- public class ExceptionDemo1 {
- public static void main(String[] args) {
- Div1 d = new Div1();
- try {
- int x = d.method(4, -1); //方法二:异常的代码在函数内部进行try catch处理
- System.out.println("x= " + x);
- }catch(FuShuException e) { //catch中捕获抛出的负数异常
- System.out.println(e.toString());
- }
- System.out.println("over");
- }
- }
- class Div1 {
- int method(int a, int b) throws FuShuException{ //方法一:在函数上声明(throws)让调用者(main函数)处理
- if(b < 0)
- throw new FuShuException("出现了负数———by fushu"); //通过throw关键字抛出自定义异常,并处理该异常;
- return a/b; //有两种处理方式:方法一,方法二
- } //一般情况下,函数内出现异常,函数上要声明;
- }
- class FuShuException extends Exception {//继承Exception类
- FuShuException(String message) { //父类中对于获取异常信息的功能已经完成,子类构造器通过super()语句;
- super(message); //把异常信息传递给父类即可
- }
- }
- /*
- //RuntimeException:是Exception的子类,该类及其子类对象发生后,方法内throw该类或子类对象,
- // 方法上不用声明(throws),也不用try catch处理
- public class ExceptionDemo1 {
- public static void main(String[] args) {
- Div1 d = new Div1();
- int x = d.method(4, -1); //这里发生负数异常,下面代码不会执行,同时主函数也不用声明(throws)异常,
- System.out.println("x= " + x); //主函数内部也不用try catch语句处理,异常交由jvm处理,这时需要修正异常代码-1
- System.out.println("over");
- }
- }
- class Div1 {
- int method(int a, int b) throws FuShuException{
- if(b < 0) //如果除数小于零
- throw new FuShuException("出现了负数———by fushu"); //抛出负数异常,method()方法上也不用声明异常
- return a/b;
- }
- }
- class FuShuException extends RuntimeException { //负数异常继承RuntimeException
- FuShuException(String message) {
- super(message);
- }
- }
- */
复制代码 |