JAVA 基础之异常

  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异常(当然指的是受检异常)又给我们平添很多麻烦,尽管它的出发点是好的。

 

原文地址:https://www.cnblogs.com/a986771570/p/7109831.html