Android自定义抛出异常的方法详解

 更新时间:2019年06月04日 11:35:25   作者:奔跑的佩恩  
这篇文章主要给大家介绍了关于Android自定义抛出异常的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

在android开发过程中,我们经常遇到异常的问题,崩溃抛出异常的时候,是非常令人烦闷的。但是异常有一个好处,使得app能在编译的时候给我们提供一些bug信息,有时可能比较模糊,有时可能很精准,甚至提示报错行。基于这一点,今天我们就来讲讲android中的异常吧。

今天要讲的内容:

  • throw 和 throws
  • 异常类型
  • 仿写异常及其好处

一. throw 和 throws

异常通常的处理方式有 throw/throws 以及 try-catch 两种。今天我们主要讲解throw/throws这一类的处理。

  • throw:抛出异常,一般是一个具体的异常。放置在方法体内,当代码执行此行并抛出一个具体的异常以后,此异常下面的逻辑代码均不会执行。
  • throws:抛出异常的声明,一般放在方法头,表示此方法的执行可能会引起某个异常,或某几个异常,throws 后面可以声明多个异常,如 :
public static void function1() throws Exception1, Exception2, Exception3{

}

而 throws引起的异常,一般由调用此方法的方法去处理。

二. 异常类型

java开发异常大致分为三种:

  • java.lang.Error
  • java.lang.Exception
  • java.lang.RuntimeException

这三个异常类都继承于他们的父类 Throwable,其中 Error 和 Exception是 Throwable 的两大子类。Error 一般是系统错误,我们不予讨论,一般我们程序出现bug都是属于Exception类,RuntimeException 是 Exception的一个子类。今天我要介绍的就是 RuntimeException 的几个常见子类。

2.1 java.lang.NullPointerException

空指针异常,一般是对象未创建或者不存在造成的。

2.2 ava.lang.ClassNotFoundException

类异常,一般是类不存在,排查的时候注意是不是类名称写错或者路径搞错了

2.3 java.lang.ArrayIndexOutOfBoundsException

下标越界异常,一般出现在数组或集合的操作过程中

2.4 java.lang.IllegalArgumentException

方法参数错误

2.5 java.lang.IllegalAccessException

没有访问权限,一般是类的权限访问出问题了

2.6 ArithmeticExecption

算术异常

2.7 ClassCastException

类型强转异常

2.8 NegativeArrayException

数组负下标异常

2.9 SecturityException

违背安全原则异常

2.10 EOFException

文件已结束异常

2.11 FileNotFoundException

文件未找到异常

2.12 NumberFormatException

字符串转换为数字异常

2.13 SQLException

操作数据库异常

2.14 IOException

输入输出异常

2.15 NoSuchMethodException

方法未找到异常

2.16 NoSuchFieldException

属性不存在异常

2.17 RuntimeException

运行时异常

2.18 TypeNotPresentException

类型不存在异常

当然,其实还有很多其他异常,这里就不一一列举了。

三. 仿写异常及其好处

看了怎么多的异常,那怎么仿写一个异常呢?下面给出一个例子:

 public GestureHelper setPointCount(int pointCount){
  if(pointCount<=0){
   throw new SecurityException("====pointCount 请输入大于零的值=======");
  }
  return GestureHelper.this;
 }

这是我代码中的一个方法,要求是输入的 pointCount 要大于零,当输入的值不满足条件的时候,会抛出不安全异常,然后出现括号中提示,类似如下:

这样的话,仿写异常的好处立见分晓了,就是当我们在写一个工具类,传入参数不符合条件的话,在运行期就能帮我们检测自己的代码中是否有不规则的东西,能帮我们检测代码的质量。

所以,这无疑是极好的!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • Android GridLayout使用案例详解

    Android GridLayout使用案例详解

    这篇文章主要介绍了Android GridLayout使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Kotlin基本数据类型详解

    Kotlin基本数据类型详解

    大家好,本篇文章主要讲的是Kotlin基本数据类型详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android自定义View实现BMI指数条

    Android自定义View实现BMI指数条

    这篇文章主要为大家详细介绍了Android自定义View实现BMI指数条,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Android AndroidX的迁移

    Android AndroidX的迁移

    这篇文章主要介绍了Android AndroidX的迁移,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Android自定义View实现遥控器按钮

    Android自定义View实现遥控器按钮

    这篇文章主要为大家详细介绍了Android自定义View实现遥控器按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Android使用Jetpack WindowManager开发可折叠设备(过程分享)

    Android使用Jetpack WindowManager开发可折叠设备(过程分享)

    这篇文章主要介绍了Android使用Jetpack WindowManager开发可折叠设备,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • android开机自动启动app的解决方法

    android开机自动启动app的解决方法

    这篇文章主要为大家详细介绍了android开机自动启动app的解决方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android性能调优利器StrictMode应用分析

    Android性能调优利器StrictMode应用分析

    StrictMode意思为严格模式,是用来检测程序中违例情况的开发者工具。最常用的场景就是检测主线程中本地磁盘和网络读写等耗时的操作。这篇文章给大家介绍Android性能调优利器StrictMode应用分析,感兴趣的朋友一起看看吧
    2018-01-01
  • 使用Flutter实现一个走马灯布局的示例代码

    使用Flutter实现一个走马灯布局的示例代码

    这篇文章主要介绍了使用 Flutter 实现一个走马灯布局的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Android控件PullRefreshViewGroup实现下拉刷新和上拉加载

    Android控件PullRefreshViewGroup实现下拉刷新和上拉加载

    这篇文章主要为大家详细介绍了Android控件PullRefreshViewGroup实现下拉刷新和上拉加载效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论