java中的异常类有哪几类?分别怎么使用?

1.异常类有分为编译时异常和运行时异常

1.1编译时异常:写代码的时候就会提醒你有异常

常见的编译时异常有:
			IOException
			SQLException
			CloneNotSupportedException
			parseException

1.2运行时异常:java.lang.RuntimeException,运行的时候会在控制台提示异常

常见的运行时异常有:
			NullPointerException: 空指针异常,一般出现于数组,空对象的变量和方法
			ArrayIndexOutOfBoundsException: 数组越界异常
			ArrayStoreException: 数据存储异常
			NoClassDefFoundException: java运行时系统找不到所引用的类
			ArithmeticException: 算数异常,一般在被除数是0中
			ClassCastException: 类型转换异常
			IllegalArgumentException: 非法参数异常
			IllegalThreadStateException: 非法线程状态异常
			NumberFormatException: 数据格式异常
			OutOfMemoryException: 内存溢出异常
			PatternSyntaxException: 正则异常

1.3自定义异常:

自定义一个类,继承某个异常类
如果继承的是Exception那么就定义了一个编译时异常
如果继承的是RuntimeException或者其子类,那么就定义了一个运行时异常

2.怎么使用:

2.1一种是在方法中声名异常,谁调用就把异常抛给谁
	
	
2.2一种是使用try{}..catch{}块处理异常
		如果多个异常处理的方式不同,可以用多个catch处理
		如果所有异常处理方式一样,可以捕获一个父类异常进行统一的处理
		如果多个异常分成了不同的组,那么同一组异常之间可以使用|隔开(jdk1.7开始)
		jdk1.7还增加了增强tr(){}catch(){},通常用于自动关流

3.异常知识扩展:

3.1 Throwable类是所有异常的超类,有两个子类,分为Error和Exception
		Error:错误是无法处理的,只能更改代码,就像一个人得癌症一样
		Exception:异常是可以处理的,就像是感冒一样,吃药就能好
		
3.2 在方法重写的时候
		子类抛出的编译时异常不能超过父类编译时异常范围
		子类不能抛出比父类更多的编译时异常(这里是指抛出异常的范围不能更大,但个数可以更多)
		编译时异常随你抛

个人总结,如有错误或疑问请帮我指出,谢谢^!

猜你喜欢

转载自blog.csdn.net/JetaimeHQ/article/details/83031899
今日推荐