JAVA 异常
1.异常的定义?
阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。
2.异常的分类?
常见的异常一般都分为检查异常和非检查异常RuntimeExcepiton
3.异常的捕捉?
catch捕捉异常
不能光捕捉
catch(RuntimeException e) { */ //抓到异常,什么也不干 /* * 这样会使程序出现混乱状态,吃掉异常会出现严重的问题 * *e.printStackTrace(); *程序的稳定性 正确的异常处理是程序稳定的关键 } //必须对异常进行合理的处理
除了runtime以外的所有异常,都必须进行catch处理 或者抛出 ,抛出后由调用的地方再进行处理
4.异常可以自己定义?
异常可以自定义的,但是一般不这样使用,因为一般遇到问题都解决掉了很少有不能解决的问题需要抛出异常
5.finally和final的区别
finally是异常处理里都会进行的一环(除开出错 程序结束)
final定义一个标记的变量并且不能赋值
基本上来说final和finally不是一个东西
案列
package xyf; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /* * 异常分为非检查异常 * 除了runtimeexception * 都叫做检查异常 * * * */ import java.lang.*; import java.sql.SQLException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class yc { public static void main(String[] args) //throws ParseException//表示parse可能会抛出parseexception异常 { try { test(); if(true) { throw new IOException("aaa"); //throw new RuntimeException("aa"); } if(true) { throw new SQLException(""); } } /*catch(IOException ex) { System.out.println("文件没有找到"); }*/ //如果不catch住那么必须在方法上声明抛出 catch(ParseException ex) { System.out.println("解析日期出错"); } catch(IOException ex) { System.out.println("文件没有找到"); } catch(SQLException ex) { System.out.println("sql异常"); } } static void test() throws ParseException,FileNotFoundException { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Date date=sdf.parse("2008-08-08"); FileInputStream fis=new FileInputStream("w:\\1.txt"); } }
异常的本意是好的,让我们试图修复程序,但是现实中我们修复的几率很小,我们很多时候就是用它来记录出错的信息。如果你厌倦了不停的处理异常,重新抛出异常对你来说可能是一个很好的解脱。原封不动的把这个异常抛给上一级,抛给调用这个方法的人,让他来费脑筋吧。这样看来,java异常(当然指的是受检异常)又给我们平添很多麻烦,尽管它的出发点是好的。
时间: 2024-10-14 04:28:18