范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

大数据编程入门Java异常处理

  在使用Java编写程序的时候,会出现一些错误,我们通常称之为异常。在我们遇到异常的时候应该怎么去处理呢?今天小编将为大家带来大数据编程入门:Java异常处理这篇文章。一、异常的分类
  在Java程序中所遇到的有三种异常,由用户错误引起的异常、由程序错误引起的异常及由物理错误引起的异常。
  由用户错误引起的异常,通常包括:
  ① 用户输入了非法数据。
  ② 要打开的文件不存在。
  ③ 网络通信时连接中断,或者JVM内存溢出。
  在我们了解到异常处理是怎么工作前,我们需要掌握以下三种类型的异常:
  ① 检查性异常:最具代表性的检查异常是由程序员无法预见的用户错误或问题引起的。例如,要打开一个不存在的文件,会发生一个异常,在编译时不能简单地忽略它。
  ② 运行时异常:运行时异常是程序员可以避免的异常。与检查性异常不同,运行时异常可以在编译时忽略。
  ③ 错误:错误不是例外,而是程序员无法控制的问题。错误通常在代码中被忽略。例如,当堆栈溢出时,会发生错误,并且在编译期间无法检查它们。二、Exception类的层次
  所有异常类都是从java.lang.Exception继承的子类。
  Exception类是Throwable类的子类。除了Exception类之外,Throwable还有一个子类Error。
  Java程序通常不会捕获错误。错误通常发生在严重故障的情况下,它们不在Java程序处理的范围之内。
  Error用于指示运行时环境中的错误。
  例如,JVM内存溢出。通常,程序不会从错误中恢复。
  Exception类有两个主要的子类:IOException类和RuntimeException类。
  三、Java 内置异常类
  Java语言在Java中定义了一些异常类在 java.lang 标准包。
  标准运行时异常类的子类是最常见的异常类。因为 java.lang包默认加载到所有Java程序中,从运行时异常类继承的大多数异常都可以直接使用。
  Java还根据每个类库定义了一些其他异常,下表列出了Java的非检查性异常。
  异常
  描述
  ArithmeticException
  当出现异常的运算条件时,会引发此异常。例如,当一个整数被"零除"时,抛出这个类的一个实例。
  ArrayIndexOutOfBoundsException
  访问具有非法索引的数组时引发异常。如果索引为负数或大于或等于数组大小,则该索引是非法的。
  ArrayStoreException
  尝试将错误类型的对象存储到对象数组时引发异常。
  ClassCastException
  当试图将对象强制转换为不是实例的子类时,会引发此异常。
  IllegalArgumentException
  引发的异常表示传递给方法的参数非法或不正确。
  IllegalMonitorStateException
  抛出异常以指示线程已尝试等待对象的监视器,或通知正在等待对象监视器但未指定监视器的另一个线程。
  IllegalStateException
  在非法或不适当的时间调用方法时产生的信号。换句话说,Java环境或Java应用程序没有处于请求操作所需的适当状态。
  IllegalThreadStateException
  线程未处于请求操作所需的适当状态时引发异常。
  IndexOutOfBoundsException
  指示排序索引(例如对数组、字符串或向量的排序)超出范围。
  NegativeArraySizeException
  如果应用程序试图创建大小为负的数组,则抛出该异常。
  NullPointerException
  当应用程序试图在需要对象的地方使用 null 时,抛出该异常
  NumberFormatException
  当应用程序尝试将字符串转换为数字类型,但无法将该字符串转换为适当的格式时,会引发此异常。
  SecurityException
  由安全管理器抛出的异常,指示存在安全侵犯。
  StringIndexOutOfBoundsException
  此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。
  UnsupportedOperationException
  当不支持请求的操作时,抛出该异常。
  下表列出了Java定义在java.lang包中的检查性异常类。
  异常
  描述
  ClassNotFoundException
  应用程序在尝试加载类并引发异常时找不到相应的类。
  CloneNotSupportedException
  当调用Object类中的clone方法来克隆对象,但对象的类无法实现可Cloneable接口时,会引发此异常。
  IllegalAccessException
  拒绝访问一个类的时候,抛出该异常。
  InstantiationException
  当试图使用Class类中的newInstance方法创建一个类的实例,而指定的类对象由于是一个接口或一个抽象类而无法实例化时,会引发此异常。
  InterruptedException
  一个线程被另一个线程中断,抛出该异常。
  NoSuchFieldException
  请求的变量不存在
  NoSuchMethodException
  请求的方法不存在四、异常方法
  方法
  说明
  public String getMessage()
  返回有关发生的异常的详细信息,此消息在Throwable类的构造函数中初始化。
  public Throwable getCause()
  返回一个Throwable 对象代表异常原因。
  public String toString()
  使用getMessage()的结果返回类的串级名字。
  public void printStackTrace()
  打印toString()结果和栈层次到System.err,即错误输出流。
  public StackTraceElement [] getStackTrace()
  返回包含堆栈层次结构的数组。下标为0的元素表示堆栈的栈顶,最后一个元素表示方法调用堆栈的栈底。
  public Throwable fillInStackTrace()
  用当前的调用栈层次填充Throwable 对象栈层次,添加到栈层次任何先前信息中。五、捕获异常
  使用try和catch关键字捕获异常。try/catch代码块放置在可能发生异常的位置。
  try/catch代码块中的代码称为保护代码。使用try/catch的语法如下:
  try
  {
  // 程序代码
  }catch(ExceptionName e1)
  {
  //Catch 块
  }
  Catch语句包含捕获异常类型的声明。当保护代码块中发生异常时,将检查try后的catch块。
  如果发生的异常包含在catch块中,则异常将传递给catch块,这与向方法传递参数相同。
  示例:
  在下面的示例中,当代码尝试访问数组的第三个元素时,将声明一个包含两个元素的数组并引发异常。
  运行结果:
  六、多重捕获块
  try块后跟多个catch块称为多重捕获块。
  多个捕获块的语法如下:
  try{
  // 程序代码
  }catch(异常类型1 异常的变量名1){
  // 程序代码
  }catch(异常类型2 异常的变量名2){
  // 程序代码
  }catch(异常类型3 异常的变量名3){
  // 程序代码
  }
  上面的代码段包含三个catch块。
  你可以在try语句之后添加任意数量的catch块。
  如果保护代码中发生异常,则会将其抛出到第一个catch块。
  如果引发异常的数据类型与ExceptionType1匹配,将在此处捕获它。
  如果不匹配,则传递给第二个catch块。
  所以,直到异常被捕获或通过所有catch块。
  示例:
  以下示例展示了怎么使用多重 try/catch。
  七、throws/throw关键字
  如果方法未捕获检查异常,则必须使用throws关键字声明该异常。throws关键字放在方法签名的末尾。
  您还可以使用throw关键字抛出异常,不管它是新实例化的还是刚刚捕获的。
  以下方法的声明引发RemoteException异常:
  一个方法可以声明抛出多个异常,且多个异常之间用逗号隔开。
  比如以下的方法声明抛出 RemoteException 和 InsufficientFundsException:
  八、finally关键字
  finally关键字用于创建在try代码块之后执行的代码块。
  无论是否发生异常,finally块中的代码都将执行。
  在finally代码块中,可以运行具有finishing up性质的语句,例如cleanup类型。
  finally代码块出现在catch代码块的末尾,语法如下:
  try{
  // 程序代码
  }catch(异常类型1 异常的变量名1){
  // 程序代码
  }catch(异常类型2 异常的变量名2){
  // 程序代码
  }finally{
  // 程序代码
  }
  示例:
  运行结果:
  注意事项:
  ① catch 不能独立于 try 存在。
  ② 在 try/catch 后面添加 finally 块并非强制性要求的。
  ③ try 代码后不能既没 catch 块也没 finally 块。
  ④ try, catch, finally 块之间不能添加任何代码。九、声明自定义异常
  你可以在Java中自定义异常,在编写自己的异常类时,请记住以下几点。
  ① 所有异常都必须是Throwable的子类。
  ② 如果要编写checkup异常类,则需要继承该Exception类。
  ③ 如果要编写运行时异常类,则需要继承RuntimeException类。
  可以定义自己的异常类,如下所示:
  class MyException extends Exception{
  }
  通过仅继承Exception类而创建的异常类是检查异常类。
  以下insufficientFundsException类是从Exception继承的用户定义的异常类。
  与任何其他类一样,异常类包含变量和方法。
  示例:
  下面的例子是模拟一个银行账户,通过识别银行卡号,就可以存取款了。
  要演示如何使用自定义异常类,在以下CheckingAccount类中包含一个withdraw()方法,以抛出一个非充分的FundSexException异常。
  下面的BankDemo程序演示如何调用CheckingAccount类的dispose()和withraw()方法。
  编译以上三个文件,并运行BankDemo,运行结果如下:
  十、通用异常
  在Java中定义了两种类型的异常和错误。
  1、JVM(Java虚拟机) 异常:由 JVM 抛出的异常或错误。例如:NullPointerException 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。
  2、程序级异常:由程序或者API程序抛出的异常。例如 IllegalArgumentException 类,IllegalStateException 类。
  以上就是关于大数据编程入门:Java异常处理的全部内容了,希望这篇文章能够帮助到大家~

通信短信信息和语音呼叫服务管理短期利好互联网营销渠道2020年8月31日,工业和信息化部信息通信管理局发布了通信短信信息和语音呼叫服务管理规定(征求意见稿),面向全社会公开征求意见。蛇叔在通读了几遍该征求意见稿后,重点从三个方面来谈阿里内部隐藏P序列职级相濡以沫不如相忘于P8月26日下午,据36氪消息,阿里在近期取消了内部系统的P序列职级显示,员工在邮件钉钉内网等系统中已无法再看到彼此的职级。此举被解读为是又一提升组织效率的措施。大厂就是大厂,一个平全场景互联新体验,鸿蒙生态开启万物智联时代做一个操作系统难吗?难!余总在今年的开发者大会上直言道,最伟大的企业,就是有生态的企业。而操作系统,则是生态的根。令人感到意外的是,短短2年时间,搭载华为鸿蒙操作系统的设备已达1。ofo押金已无退,哈啰年卡应无恙7月底,微博和微信等里面都在转发ofo共享单车创始人戴威升级当奶爸的图片。看到这个信息,怎么说呢,第一反应是我的押金到现在还没退,也不指望能退了!不管怎么说,孩子是无辜的,现代社会坚持画画30年地摊画扇面挣点笔墨钱有梦想有坚持的人值得支持西安西仓集市上,郑武荣在摆摊画扇面卖画挣点笔墨钱,同时也更多的宣传自己。今年45岁的郑武荣,西安市长安区人,坚持画画30年,作为一名农民工画家,2014年他就在西安美术馆开了名为梦玩家精挑细选蟋蟀培训准备中秋开赛按耐不住现场开斗红牙7连胜陕西西安,立秋过后,很多商贩聚集在西仓花鸟市场附近的一条小巷内开始售卖蟋蟀,斗蟋玩家们纷纷来到这里挑选中意的蟋蟀。现在市场上的蟋蟀大多来自山东河南,也有一些养殖的在市场上卖,外行分华硕无畏系列新品亮相!11代酷睿标压90HzOLED屏,体验大升级9月15日凌晨,苹果的秋季发布会正式召开,此前一直被大家所期待的iPhone13系列手机也在当天如期而至。众所周知,iPhone13系列之所以受到这么大的关注,最重要的原因之一就是华为Mate50系列要来了?业内人士爆料或在10月发布截止目前,华为P50系列已经发布有一段时间了。此前有不少人称,华为Mate数字旗舰今年不会更新了,想要看到新品,最快也只能明年才能实现。但让人惊喜的是,由近日知情人士爆出的文档来看你只是喝了秋天的第一杯奶茶,人家却催生了一个公司2020年9月22日是秋分时节,意味着比较有仪式感地进入秋天了。秋天是肃杀的季节,秋天也是容易让人多感慨的季节,但也是浪漫的季节。无论是秋风,还是秋雨,亦或是秋叶。总是有多重情愫。石头手持无线吸尘器H7评测,小身材大能量性能旗舰自从用了石头的T7S扫地机器人,就被这个企业的创新能力所吸引。在手持无线吸尘器市场,石头又推出了手持无线吸尘器H7,同样,H7上的创新仍然不少,在设计和功能使用等方面让我这个居家男中国移动此举让人生厌,也令人佩服一段时间以来,老旧小区的微改造工作在一些城市相继展开。小区微改造项目的主要工程有公共区域地面翻新杂乱随意拉线的线路(主要包括电线广电电视线路和宽带线路)的规整公共楼道墙面楼梯翻新等
中国企业之光!小米5G智能手机被德国电信认可,苹果却被排除在外近日,德国电信官宣了好消息,在小米高通诺基亚爱立信以及三星等供应商伙伴的合作之下,实现了5GVoNR通话测试。没有看错,小米就是唯一一家参与到这场测试中的中国企业,并且还获得了德国鸿蒙OS到底有多强?对比苹果iOS数据出炉,华为这次真给力流畅!这是不少华为手机用户升级鸿蒙OS系统之后的第一感觉,伴随着6月2号鸿蒙OS系统正式发布,首批可适配鸿蒙OS系统的机型都能自行升级这一华为公司最新的自研系统,而根据不少用户反馈车后风云新能源汽车专用轮胎,来了新能源车潜力巨大,轮胎也面临巨大机会。近年来,全球电动车市场增速迅猛,预计到2030年市场规模将达到1800万辆。相比传统燃油汽车,电动汽车在轮胎的耐磨性噪音控制以及对整车续航和操华为回应手机厂商接入鸿蒙系统疑问疑似荣耀X20真机曝光厂商接入鸿蒙系统由自己选择Hello大家好,这里是科技V报,我是龙二Pro,昨晚,华为HarmonyOS2。0公测版正式发布,同时开启了首批公测的升级活动,包括华为Mate40系列华为Watch3初评,性能价格堪称完美!苹果和谷歌麻烦来了华为宣布推出首款运行自家鸿蒙操作系统的智能手表,即预装鸿蒙系统的华为Watch3和华为Watch3Pro。从理论上讲,这是华为用于其智能手表的第三个独立操作系统,它最初使用谷歌的A苹果WWDC2021终极剧透五大系统重磅升级,MacBook外观大改智东西(公众号zhidxcom)编译孙悦编辑云鹏智东西6月4日消息,苹果开发者大会(WWDC)2021将于北京时间6月8日至12日线上召开。本次活动最受期待的是iOS15iPadO苹果泄露新操作系统homeOS昨晚,华为举行了HarmonyOS2及华为全场景新品发布会正式公布了他们的鸿蒙OS,没想到在华为公布鸿蒙OS的时候,苹果的新操作系统homeOS也首度被曝光。这个首度被曝光的hom微信朋友圈要关闭?放弃圈子背后是腾讯放不下的社区梦几天前,微信发布通知,圈子功能将于2021年12月28日正式停运。很多小伙伴初次听到这个消息时认为微信朋友圈要关闭了?还有很多小伙伴在后台私信教授询问,那些活跃在朋友圈的好友是不是美团投入5亿元设立青山科技基金每年奖励十位科研学者和十个创新项目为响应国家碳中和政策的号召,更好地推动行业绿色发展,实现美丽中国愿景蓝图,在今年环境日当天,美团发起设立公益性的青山科技基金,先期投入5亿元,携手行业生态相关方与科研工作者,共同助小米申请雷军超大杯商标被驳回天眼查App显示,近期,小米科技有限责任公司申请的多个雷军超大杯商标流程变更为驳回通知发文,这些商标均申请于2021年7月,国际分类含广告销售啤酒饮料食品等。不过,该公司申请的多个程序员新人周一优化一行代码,周三被劝退?这周一,公司新来了一个同事,面试的时候表现得非常不错,各种问题对答如流,老板和我都倍感欣慰。这么优秀的人,绝不能让他浪费一分一秒,于是很快,我就发他了需求文档源码,让他先在本地熟悉