访问权限修饰符&异常

访问(权限)修饰符

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
posted @ 2022-07-28 11:07  zx墨染  阅读(57)  评论(0)    收藏  举报