一、处理异常 1、定义:异常是指程序在运行时产生的错误。 2、使用"try…catch"语句 一般格式为:
try { 可能产生异常的代码; } catch (异常类 异常对象) { 异常处理代码; }3、在"try…catch"语句中,可以同时存在多个语句块 一般格式为:
try { 可能产生异常的代码; } catch (异常类1 异常对象) { 异常1处理代码; } catch (异常类2 异常对象) { 异常2处理代码; } ...其他catch语句块;4、finally子句的用法 finally子句需要和"try…catch"语句一同使用,不管程序中有没有异常发生,也不管"try…catch"语句是否执行完毕,finally语句块的代码都会被执行。 一般格式为:
try { 可能产生异常的代码; } catch (异常类 异常对象) { 异常处理代码; } finally { 一定会执行的语句; }二、抛出异常 1、throw关键字 若我不想处理这个异常或者处理不了,那么可将这个异常抛出,通过throw可以实现。throw用于方法体。 2、throws关键字 如果有异常抛出,必须有"接盘侠"。谁调用你,谁就接收异常,某个方法,例如main:Main(String[] args) throws Exception{}throws用在方法声明中。
例: public class TestError { //如果这个方法内有异常,它来接盘 public static void main(String[] args) throws Exception{ // 如果代码有异常风险,不能把错误直接展示用户 //如果正常,只执行try中内容,如果try某一句出错,进入catch try { // 把可能错误的包装起来 int i = 9 / 0; System.out.println("打印值:"+i); } catch (Exception e) { // 如果出错,进行捕获异常 //处理异常 System.out.println( e.getMessage() ); //处理不了,抛出异常,创建一个新的异常 throw new Exception("执行出错了"); //throw 语句抛出一个异常对象时,后面的代码将不会被执行 throw new Exception("我执行不到,编译出错!"); }finally { //都会被执行 int x = 13; System.out.println(x); } } }三、Exception类 1、运行时异常(RuntimeException异常)
异常类名称异常类含义ArithmeticException算数异常类ArrayIndexOutOfBOutBoundsException数组下标越界异常类ArrayStoreException将与数组类型不兼容的值赋值给元素时抛出的异常ClassCastException类型强制转化异常类IndexOutOfBoundsException当莫对象(如数组或字符串)的索引超出范围时抛出该异常NegativeArraySizeExcepton建立元素个数为负数的数组异常NullPointerException空指针异常NumberFormatException字符串转换为数字异常类SecurityException小应用(Applet)执行浏览器的安全设置禁止的动作时抛出的异常StringIndexOutOfBoundsException字符串索引超出范围异常2、检查异常(Check Exception)
异常类名称异常类含义ClassNotFoundException未找到相应类异常EOFException文件已结束异常类FileNotFoundException文件未找到异常类IllegalAccesstException访问某类被拒绝时抛出的异常InstantiationException试图通过newInstance()方法创建一个抽象类或者抽象接口的实例时抛出该异常IOEExcepton建输入输出异常NoSuchFiledException字段未找到异常NoSuchMethodException方法未找到异常SQLException操作数据库异常面试题: (答案见下一篇博客面试题部分) 无
上篇面试题答案: 1、 【正确答案】C 【答案解析】if 后小括号里必须是一个条件表达式,结果为布尔值,如果为 true ,则执行后面大括号中的代码,如果为 false,则不执行 因此C是正确选项 。 2、 【正确答案】C 【答案解析】i变量的作用范围是整个for循环中,所以第六句的输出会报错。 3、 【正确答案】B 【答案解析】(y!=0)&&(x<4)是false,&&一假全假,所以不会执行循环。
我的祖国,永远繁荣富强。烟花的魅力就在于,你永远也不知道它燃放出来是什么效果,上升的那三五秒时间,就是漫长的等待期,等待着轰然开爆的时刻,绽放出你无法想象到的绚丽色彩。