访问权限修饰符&异常
访问(权限)修饰符
1、private(私有)关键字
(1)可以修饰成员变量和成员方法
(2)被private修饰的变量和方法仅本类中使用
(3)被private修饰的变量需要提供get、set方法供类外调用使用<shift+alt+s快捷键>
(4)boolean类型的get方法比较特殊:
public boolean isName(String name){
retrun name;
}
2、Java中的访问修饰符
| 类内部 | 同包下 | 子类中 | 非同包 | |
|---|---|---|---|---|
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | × |
| 默认不写 | √ | √ | × | × |
| private | √ | × | × | × |
注意:
(1)一般我们最常用的就是private和public,建议任何情况下都使用访问修饰符对变量和方法进行限制
(2)权限高低:
public>protected>默认不写>private
其中,public权限最高,整个项目中都可以访问(同一个项目),private权限最小,只能在本类中使用
(3)被private修饰的变量和方法可以通过提供公共的方法对其进行访问
异常
Throwable类
Throwable类是Java语言中所有错误和异常的顶级父类,直接子类为Error和Exception
构造方法
1、无参构造:构造一个新的throwable对象,其详细信息为null
public Throwable()
2、有参构造:使用指定的详细信息(message)构造一个新的throwable对象
public Throwable(String message)
成员方法
1、返回此throwable对象的详细细细字符串
public String getMessage()
2、返回一个简要信息描述
public String toString()
3、打印此throwable对象及其详细信息字符串到标准错误流(控制台)
public void printStackTrace()
Error
Error类是Throwable的子类,它指出了一个合理的应用程序不应该试图捕捉的严重问题
【注意】Error结尾的是严重问题,无法解决
Exception
Exception类及其子类是一种Throwable的子类,指示了一个合理的应用程序可能想要捕获的条件。
【注意】Exception结尾的是我们可以处理的,一般我们需要关注的是RuntimeException
异常处理
异常处理分为两种:捕获和抛出。(有能力处理就进行捕获,没有就抛出)
捕获格式:
try{
//有可能出现的问题代码,存在一定隐患的代码
}catch (异常类型 变量名){
//对应当前异常类型的处理方式
}finally{
//无论是否捕获,都会执行,常用于释放资源
}
【注意】
1、代码中出现异常,JVM会终止代码运行,如果使用try catch捕获处理异常,JVM会认为当前代码中不存在异常,可以继续运行。
2、try catch代码块中声明的都是局部变量,需要提前声明
3、try catch捕获处理异常,可以处理多种异常情况
4、代码中存在多种隐患,存在多个异常情况,try catch 捕获有且只能处理第一个异常的代码,因为JVM从异常代码开始直接进入异常捕获阶段。
5、Exception作为java中所有异常的超类,在捕获异常处理时如果直接使用Exception进行捕获处理,无法具体到某一个异常来处理。
6、Exception可以作为try catch最后一个,用于处理其他异常捕获之后没有对症方式遗留问题。
抛出关键字:
throw 在方法内特定条件下抛出指定异常,后面跟异常类型的对象。
throws在方法声明位置,告知调用者,当前方法有哪些异常抛出,后面跟异常的类型。
用于处理非当前方法操作问题,导致出现的异常,一般情况下是用于处理方法运行过程中因为参数传 入,参数处理,运算结果导致的问题,抛出异常。
throw是一个稍微高级的参数合法性判
【注意】
1、throw和throws必须同时出现,并且体现在注释上
2、代码如果运行到throw抛出异常,之后的代码不再运行,之后的代码是成为无法抵达的代码
3、代码中存在多种隐患,按照隐含的情况,分门别类处理,不能在同一个条件内抛出两个异常。并且在方法声明的位置,throws之后,不同的异常,使用逗号隔开。
异常分类
运行时异常
RuntimeException:代码运行过程中出现的异常,没有强制处理的必要性,因为JVM会处理
RuntimeException异常,即报错
其他异常
强制要求处理,不管是捕获处理还是抛出处理,都需要进行操作,如果未处理就会报错
自定义异常
继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
【注意】如果继承自Exception,调出抛出了此异常的方法需要手动对其捕获或者抛出。
【注意】
1、父类的方法有异常抛出,子类的重写方法在抛出异常的时候必须要小于等于父的异常
2、父类的方法没有异常抛出,子类的重写方法不能有异常抛出
3、父类的方法抛出多个异常,子类的重写方法必须比父少或者小
总结
1、异常的存在是非常有必要的,可以帮助我们定位和解决问题
2、异常的处理方式:捕获和抛出
3、自定义异常一定要有无参构造和有参构造
4、后期会遇到大量的异常,一般使用快捷键就能搞定
Eclipse:Ctrl + 1
Idea:Alt + Enter

浙公网安备 33010602011771号