java捕获异常快捷键_java之异常处理

* 异常处理的两种方式:

*         a: try...catch...finally

*             try...catch

*             try...catch...finally

*             try...finally

*         b:throws

* try...catch处理异常的基本格式

*         try...catch...finally

*

* try:用来检测异常

* catch:用来捕获异常

* finally:释放资源

*

* 如果try后面跟多个catch,那么小的(子类异常)放到前面,大的放后面

*

* Throwable中的几个常见方法

*         a: getMessage()

*             获取异常信息,返回字符串

*         b: toString()

*             获取异常类名和异常信息,返回字符串

*         c: printStackTrace()

*             获取异常类名和异常信息,以及异常出现在程序中的位置,返回void

*

* throw: 在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转是,就用throw把异常对象抛出

*

* throw和throws的区别:

*         a:throws

*             用在方法声明后面,跟的是异常类名

*             可以跟多个异常类名,用都好隔开

*             表示抛出异常,由该方法的调用者来处理

*         b:throw

*             用在方法体内,跟的是异常对象名

*             只能抛出一个异常对象名

*             表示抛出异常,由该方法体内的语句处理

*

* finally:

*         被finally控制的语句一定会被执行(在执行到finally之前JVM退出了,finally就不会再执行,如:System.exit(0))

*         finally的作用:用于释放资源,在IO流操作和数据库操作汇总会见到

*         当遇到return语句是,会先看下return后面是否有finally语句,如果有会将finally执行之后再结束程序

*

* final、finally和finalize的区别:

*         final:可以修饰类,不能被继承

*            可以修饰方法,不能被重写

*            可以修饰变量,变量值不能被修改

*      finally:是try语句中的有一个语句体,不能单独使用,用来释放资源

*

*      finalize:是一个方法,当垃圾回收期确定不存在对该对象的更多引用时,有对象的垃圾回收期调用此方法

*

*如果catch中有return语句,那么finally会执行吗?如果执行是在return之前还是之后?

*        是在return之后才执行finally语句,此时的return执行只是建立一个返回路径,不会真正返回;

*      千万不要在finally里面写return语句,因为finally语句只是用来释放资源的;

*

*异常的注意事项:

*    a: 子类重写父类方法是,子类的方法的方法必须抛出相同的异常或父类异常的子类;

*    b: 如果父类抛出了多个异常,子类重写父类是,只能抛出相同的异常或是他的子集,子类不能抛出父类没有的异常;

*    c: 如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类内部有异常发生,那么子类只能try,不能throws;

*

*如何使用异常:

*  原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这样用throws;

*  区别:

*      后续程序需要继续运行就用try;

*      后续程序不需要运行就用throws;

*

*   如果JDK没有提供相应的异常,需要自定义异常进行处理;

*

*try...catch的快捷键:选中需要处理的代码  用  alt + shift + z

1.  Throwable中的几个常见方法如下:

1 public static voidmain(String[] args) {2 try{3 System.out.println(1/0);4 } catch(Exception e) {5 //TODO: handle exception

6 System.out.println(e.getMessage());7 System.out.println(e.toString()); //调用toString方法时和直接打印对象e效果一样

8 e.printStackTrace(); //JVM默认就用这种方式处理异常

9 }10 }

2.  异常练习之键盘输入整数,对整数进行转换为二进制处理

1 public classDemo2_Test {2

3 /*

4 * 从键盘录入一个整数,将这个整数转换成二进制显示5 * 对处理过程进行异常处理:可能录入的是一个过大的整数、小数或者是个字符串6 *7 * 分析:8 * 对录入的字符串进行转换为BigInteger,如果转换出错说明不是整数过大9 * 对录入的字符串今次那个转换为BigDecimal,如果转换出错说明不是小数10 * 剩下的情况就是非法字符的情况了11 */

12 public static voidmain(String[] args) {13

14 Scanner sc = newScanner(System.in);15 System.out.println("请输入一个整数:");16 while (true) {17 String line =sc.nextLine();18 try{19 Integer i =Integer.parseInt(line);20 System.out.println(i.toBinaryString(i));21 break;22 } catch(Exception e) {23 try{24 newBigInteger(line);25 System.out.println("输入的整数过大,请重新输入一个整数:");26 } catch(Exception e2) {27 try{28 newBigDecimal(line);29 System.out.println("输入的整数是小数,请重新输入一个整数:");30 } catch(Exception e3) {31 System.out.println("输入的整数是非法字符,请重新输入一个整数:");32 }33 }34 }35 }36 }37

38 }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值