异常问题

我们遇到的代码问题有编译异常,有运行时异常,代码问题出现的异常问题都必须要处理,用面向对象的思想看待异常问题,就很容易理解了。

那么如何去描述一个错误呢?

1.错误的名称 类的名称
2.错误的原因
3.错误发生的地点(某个线程,某行代码)

所有的错误都会有一个最终的父类

我们所有的异常对象都可以被抛出throw new XxxxxException();

但是抛出的手段有两种:

1.由JVM直接抛出

JVM会自动检测程序 如果出现异常 则自动创建该异常对象 然后去抛出,JVM自动执行 throw new XxxxxException();

2.我们手动抛出
            在代码中手写 throw new XxxxxException();

Throwable分两大类:有异常大小的问题,小会出现运行异常,大则会宕引起宕机。

Error:异常类比较少 但是只要出现都是狠角色
            是直接由JVM抛出的一些严重性的错误-主要体现在内存上
            OutofHeapError     堆内存溢出(堆没有空间再去创建对象)
            StackOverFlowError 栈内存溢出(栈没有空间再去进栈函数)
            我们一般不会去操心,这个异常不是我们应该尝试去处理解决的异常
 Exception:异常类比较多 所以说没有那么严重
            运行时异常:RuntimeException
            指的就是只有在程序运行java期间才能出现的错误,它是在编译期间javac检测不到的
                ArrayIndexOutofBoundsException
                NullPointerException
                ClassCastException
                ......
                System.out.println(10/0);
            编译时异常:Exception及其其他的子类
                就是在编译期间能够被检测出来的可能会发生的错误
                在此处可以预防它出错,写一些预备方案
                此时还是没有发生的
                什么时候发生,只有在运行时才可能发生
                一旦该异常发生 则可以选择一些预备方案来解决

所以说我们对编译时异常都会有一个声明,就是告诉调用者,此函数可能会出错

声明:在当前异常发生的函数后面  throws 异常类名

void main() throws XxxException{
        show();
    }
    void show() throws XxxException{
        throw new XxxException();//编译时异常
    }

声明的意义就是在告诉调用者此函数可能会出现问题,但是没有解决方案。

注:对于运行时异常来说,声明没有任何效果。就已经来不及了

捕获:在当前异常发生的地点 直接将异常处理调 内部消化了

void main(){
		show();
	}
	void show(){
	
		try{	//尝试着去执行某些代码
		
			throw new XxxException();// 编译时异常||运行时异常
			
		} catch(XxxException e) {	//一旦try中出现异常 则catch将其捕获
			//e = new XxxException();
			//在catch里面可以做一些修正的工作
		}
	}	

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值