包与权限 异常体系

一:包与权限

包:其实在JAVA当中就是一系列的文件夹而已

com.xxxx.xxx 规范:包名必须小写 且包名与包名之间用.来分隔

包最要的用法就是用于分类我们的代码,便于后期管理

Java类:主类/测试类  实体类 工具类...

     service 存放业务代码

     entity  存放实体类代码

     util        存放工具类代码

业务逻辑代码

底层逻辑代码

权限:

公共 public

保护 protected

默认 啥也不写

私有 private

 

                          public            protected        默认            private

本类中                    √                √                        √                √

本包中                    √                √                        √

其他包中继承         √                √

其他包中                                

 

  • public      只要是在当前项目中 都可以访问
  • private    只能在本类中访问
  • 默认        只能在本包中访问(无论继承)                
  • protected 本包中可以访问(无论继承);其他包中只能继承访问        

二:异常体系

1.异常:指的就是程序在编译或运行期间出现的一些错误

用面向对象的思想 我们可以把这些错误当成对象去看待

2.如何去描述错误?

1.错误的名称 类的名称

2.错误的原因

3.错误发生的位置(某个线程,某行代码)

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

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

抛出分两种情况:

1.由JVM直接抛出

JVM会自动检测程序 如果出现异常 则自动创建该异常对象 然后去抛出

JVM自动执行 throw new XxxxxException();

2.我们手动抛出

在代码中我们手写 throw new XxxxxException();

Throwable分两大类:

1.Error:异常类比较少 但是一个个都比较狠

是直接由JVM抛出的一些严重性的错误-主要体现在内存上

OutofHeapError     堆内存溢出(堆没有空间再去创建对象)

StackOverFlowError 栈内存溢出(栈没有空间再去进栈函数)

我们一般不会去操心,这个异常不是我们应该尝试去处理解决的异常

2.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();         //编译时异常

}

就是预先告诉调用者(就是准备调用show函数的"人"),我(show)可能会出错

对于调用者而言,就得小心谨慎的去使用

声明仅仅是告诉外界我自身可能会有问题,但是这个问题我自身没有去真正解决

所以对于调用者而言 它也有两种解决方案 声明/捕获

注意:对于运行时异常而言 声明是没有任何效果的!

 

捕获 ---就是当前自身去解决问题,并尝试阻止程序中断

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

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、付费专栏及课程。

余额充值