博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常分类,异常抛出位置
阅读量:7060 次
发布时间:2019-06-28

本文共 1175 字,大约阅读时间需要 3 分钟。

异常(Exception)

  在Java中用类的形式对不正常进行描述和封装对象,描述不正常的情况的类成为以异常类。并且将正常代码流程和问题处理代码相分离,提高了阅读性。

  问题很多,意味着描述的类也很多,将其进行向上概括抽取,形成异常体系。

Throwable:无论是Error还是异常都能在问题发生时抛出,让调用者知道并处理

(一)、一般不可处理的,Error;

(二)、可处理的,Exception。

   class FushuIndexExexception extends Exception

{

    FushuIndexExexception()

    {}

}//自己定义的函数

class Demo                        

{                                                     

    public int method(int []arr ,int index) throws FushuIndexExexception//在函数标注处用throws,表示抛出

    {

        if(index>=2)    

        {                          

            throw new NullPointerException("数组的引用不能为空");//在函数内注处用throws,表示抛出

        }

        if(index<= 0)

        {

            throw new FushuIndexExexception();

        }

        return index;

    }

 

   

}                                                  

public class text {                                  

   public static void main(String[] args) throws FushuIndexExexception//在函数标注处用throws,表示抛出

   {   int []arr=new  int[20];

        Demo d=new Demo();

       int num=d.method(arr,-10);

       System.out.println(num);

}

}

异常的分类:

(一)编译时被检测到异常:只要是Exception和其子类都要,除了特殊子类RuntimeException体系;

(这种问题在一出现实,希望在编译时被检测,让这种问题有对应的处理方式)

(二) 编译时检测不到异常(运行时检测到异常):就是Exception中的RuntimeException和其子类;(这种问题的发生无法让功能继续,运算无法进行,更多是因为调用的原因造成的,或者引发内部状态的改变导致的,这种问题一般不处理,让编译通过,让编译时强行停止,进行编码修改)

在自定义异常时,要么继承Exception,要么继承RuntimeException

throws和throw的区别:

  1. throw使用在函数内;

throws使用在函数上;

  1. throws抛出异常类,可以抛出多个,用逗号隔开;

throw抛出的是异常对象

转载于:https://www.cnblogs.com/lujun1949/p/5461115.html

你可能感兴趣的文章
C#并行开发_Thread/ThreadPool, Task/TaskFactory, Parallel
查看>>
R语言数据框小技巧
查看>>
dubbo常用配置及注意事项
查看>>
C#实战技能之WebApi+Task+WebSocket
查看>>
Call stack Structure
查看>>
风暴英雄 http 302重定向 正在等待游戏模式下载完成
查看>>
MySQL简单实现多字段模糊查询
查看>>
如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
查看>>
n年前,我没钱但年轻,我怕n年后我老时,还是一无所成——2017我的收获和反思...
查看>>
CentOS 7.X 系统安装及优化
查看>>
ABTest灰度发布
查看>>
Python使用lxml模块和Requests模块抓取HTML页面的教程
查看>>
js比较数字相等
查看>>
2017秋 FZU SDN 课程作业汇总
查看>>
数据库的基本操作
查看>>
[C语言] 数据结构-预备知识动态内存分配
查看>>
Linux下使用SSH远程执行命令方法收集
查看>>
Jython:java调用python文件之第三方包路径问题
查看>>
TestFlight 测试
查看>>
LiveSwitch白皮书
查看>>