Java中关于异常的一些问题(三)
来源:互联网 发布:vb简单程序代码 编辑:程序博客网 时间:2024/05/22 00:54
使用throws声明抛出 的异常
格式如下:
throws ExceptionClass1,ExceptionClass2...
使用throws声明抛出异常时有一个限制:子类方法声明抛出的异常类型应该是父类方法声明抛出的异常类型的子类或相同,子类方法声明抛出的异常不允许比父类方法声明抛出的异常多。
import java.io.*;public class OverrideThrows{public void test()throws IOException{FileInputStream fis = new FileInputStream("a.txt");}}class Sub extends OverrideThrows{// 子类方法声明抛出了比父类方法更大的异常// 所以下面方法出错public void test()throws Exception{}}上面程序中Sub子类中的test()方法声明抛出Exception,该Exception是其父类声明抛出异常IOException类的父类,这将导致程序无法通过编译。
使用throw抛出异常
格式:
throw ExceptionInstance;
public class ThrowTest{public static void main(String[] args){try{// 调用声明抛出Checked异常的方法,要么显式捕获该异常// 要么在main方法中再次声明抛出throwChecked(-3);}catch (Exception e){System.out.println(e.getMessage());}// 调用声明抛出Runtime异常的方法既可以显式捕获该异常,// 也可不理会该异常throwRuntime(3);}public static void throwChecked(int a)throws Exception{if (a > 0){// 自行抛出Exception异常// 该代码必须处于try块里,或处于带throws声明的方法中throw new Exception("a的值大于0,不符合要求");}}public static void throwRuntime(int a){if (a > 0){// 自行抛出RuntimeException异常,既可以显式捕获该异常// 也可完全不理会该异常,把该异常交给该方法调用者处理throw new RuntimeException("a的值大于0,不符合要求");}}}
总结:
1、不要过度使用异常
2、不要使用过于庞大的try块
3、避免使用Catch All语句
4、不要忽略捕获到的异常
0 0
- Java中关于异常的一些问题(三)
- Java中关于异常的一些问题(二)
- Java中关于异常的一些问题(一)
- 关于一些基础的Java问题的解答(三)
- 关于Android中一些异常问题的解决办法
- 黑马程序员-关于异常的一些问题
- Java异常(三) 《Java Puzzles》中关于异常的几个谜题
- Java异常(三) 《Java Puzzles》中关于异常的几个谜题
- Java基础中关于多态转换异常的问题
- 关于java异常的一些准则,注意事项
- 关于JAVA的一些问题?
- 线程中异常抛出的一些问题
- 关于java中Jtable出现的一些问题
- 关于java中Jtable出现的一些问题
- java中关于位移运算的一些小问题
- Java中关于空格遇到的一些问题
- java异常的写法 及一些常见的异常问题
- java 中遇到的一些异常
- iOS小技巧 - 利用苹果自带的方法对齐按钮内的图标与文字
- android studio高级设置
- Android多元的设计模式
- Python 练习实例24
- ARC下OC对象和CF对象之间的桥接(bridge)
- Java中关于异常的一些问题(三)
- rman备份脚本
- 设计模式中的单例模式&c++
- linux基础学习之 automake
- HDFS写文件过程分析
- 在category和protocol中如何实现@property
- iOS全局定义NavigationController样式
- 《iOS Human Interface Guidelines》——Launch Files
- CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法