java异常
java之异常
认识java中的异常:
有过编程经历的人都会知道,出错在编写程序时,是再正常不过的事,当运行程序时,每次看到那个程序出错时,都会觉得心塞,但是最让人心塞的事情往往是——程序运行的结果和我们设想的不一样,但是我们却得不到任何的错误提示,每每这个时候,都觉得世界充满了恶意。所以照这个来看。程序给我们报出异常还是很有用的;
我们先来看一下Java中的异常体系:首先,有一个父类:Throwable,然后在Throwable(父类)下面有两个子类:一个是 Error ,也就是错误,其中比较常见的有StackOverflowError (堆栈溢出),以及IOError(IO错误),由于我资历尚浅,目前,好像并没有遇到过;另外一个是: Exception(异常)了,在这个下面我们也有两个类:
(一)也就是我们说的异常,RuntimeException这个是在程序运行时,然后会在输出哪里报错这个比较常见的有:
① NullPrintException 空指针异常
② ArrayIndexOutOfBoundsException 数组下标越界异常
③ ClassCastException 类型转换异常
④ IllegalArgumentException 非法的参数异常
到目前为止我还只是遇到过第一个空指针异常,以及数组下标越界这两个异常,这两个应该是最常见的了;
(二)第二个是强制异常:强制异常的话,就是在写程序时就会报错,在编写时,底下出现红色线;其中比较常见的是:
① InterruptedException
② IOException
③ EOFException
④ FileNotFoundException
⑤ SocketException
而我现在目前还只是接触到了InterruptedException:例如:
解决异常的关键词
try、catch
首先是比较熟悉的try、catch,这两个关键字,我们现在看一下:
这样加入try{ }cath(){}语句之后程序就可以正常运行了;简单来说,我们运行Thread.sleep(200);时,如果程序运行出现异常,也就是InterruptedException时,try会捕获这个异常,然后程序会交给catch处理,执行我们catch中的代码从而使程序正常运行;所以我们把可能会出现异常的语句放在try语句块中,然后catch中放入会出现的异常,然后解决该异常的方法,注意所有的异常的要包括;
finally
然后是我们的finally关键字:finally{}是配合上面的try{}catch(){}一起使用的,finally和catch不一样的地方时,无论有没有发生异常,都会执行finally语句;所以finally语句块一般是用来执行对象或者资源的释放。
throw
该关键字目前还没有使用过,主要介绍他的功能:throw关键字的作用主要是配合new关键字一起使用,用法是创建一个异常对象信息,用于抛出这个异常。同样的throw抛出的异常也需要使用try{}catch(){}或者是下一个关键字throws来进行处理。
throws
throws关键字的作用主要是当一个方法运行发生异常时,会把这个异常丢出去让程序继续运行,而不是去解决它,至于让谁去解决它,并不在它的考虑范围之内。用法是:方法名()throws **Exception {},
出现异常时,解决的方法
当程序报错时,怎么样解决呢?其实总结起来就是输出,输出,再输出;只有通过输出我们才能知道程序到底发生了什么事情,它处于一个什么样的状态;比如当出现空指针异常时,我们先找到出错的那一行,然后,再把可能为空的对象输出来。这样我们就可以知道是哪一个空了。然后就是往上找,把我们的程序比作河流的话,那么我们的这个方法就是逆流而上。我们在程序中所有出现了该对象的地方输出,编上序列号,找到那个位置,然后再来解决;
这种输出的方法在程序没有报错,但是运行结果不对的时候,同样是很有效果的。
最后说一下为啥要使用异常,我们在使用手机电脑时,我们的程序,或多或少是都出现过异常,但是往往,我们却也能继续使用,顶多出现一个页面让我们去反馈一下我们出现的异常,但是我们自己写的android程序,当出现一点点异常时,我们的程序就会推出,崩溃,无法使用,所以说,这就是使用异常的好处:允许程序出错。而最终的目的就是让程序能运行,而不至于崩溃。
java异常的更多相关文章
- 浅谈java异常[Exception]
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...
- 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
本文转载自 java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...
- Java异常体系及分类
上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...
- Java异常之自定义异常
哎呀,妈呀,又出异常了!俗话说:"代码虐我千百遍,我待代码如初恋". 小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常.Java异 ...
- 第11章 Java异常与异常处理
1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...
- java 异常
1.java异常 2.自定义抛出 3.运行时异常,程序有问题,让使用者可以改' ' 4.return 和 throw的区别 return 符合函数要求的值 throw 有问题的时候用它结束 ...
- 3.Java异常进阶
3.JAVA异常进阶 1.Run函数中抛出的异常 1.run函数不会抛出异常 2.run函数的异常会交给UncaughtExceptionhandler处理 3.默认的UncaughtExceptio ...
- 2.Java异常学习
1.Java异常的概念 异常的例子 1.除法就是一个需要捕获异常的例子,除数又可能是0 异常处理的基本流程如下 一旦发生异常,就使得程序不按照原来的流程继续的运行下去 a.程序抛出异常 try{ th ...
- java异常架构图 和几个面试题
1.java异常架构图 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被 ...
- 黑马----JAVA异常
黑马程序员:Java培训.Android培训.iOS培训..Net培训 黑马程序员--JAVA异常 一.JAVA异常有三种语句块:try语句块.catch语句块.finally语句块. 1.try语句 ...
随机推荐
- curl操作CouchDB
couchdb 服务器地址: 127.0.0.1 端口:5984 添加数据库 连接到couchdb curl -X GET http://127.0.0.1:5984 {"couchdb&q ...
- [转]PaaS平台分类
本文转自阿朱说 大家发现没,自从我们上升到有规模的互联网架构后,咱们中国的技能能力就跟不上了,只能采取国际业界顶级大公司开源出来的而且已经经受住大规模实际应用考验的组件来搭架构,因而咱们近几年大规模网 ...
- SqlServer数据类型
Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多 8,000 个字符. n varchar(n) 可变长度的字符串.最多 8,000 个字符. varch ...
- AutoMySQLBackup 3.0 Bug:"du: WARNING: use --si, not -H"
案例环境: 操作系统版本: Red Hat Enterprise Linux Server release 5.7 64bit 数据库版本 : 5.6.19 MySQL Community Serve ...
- SQL SERVER 中如何用脚本管理作业
在SQL SERVER中用脚本管理作业,在绝大部分场景下,脚本都比UI界面管理作业要高效.简洁.打个简单的比方,如果你要查看作业的运行时长,如果用UI界面查看,100个作业,你就得在历史记录里面至少查 ...
- iOS AppIcon尺寸和上传ITunes构建版本尺寸
避免忘记. 记录一下 App Icon: 29X2940X4058X5876X7687X8780X80120X120152X152167X167180X180 ITunes构建版本: 1242 x 2 ...
- C++ - 静态成员函数
c++中静态成员函数属于整个类, 而不是某个对象,因此不需要创建对象就可以访问 1.出现在类体外的函数定义不能指定关键字static:2.静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访 ...
- Godaddy SSL 安装及Tomcat 7配置
基础环境:Centos 7.X 1. 安装tomcat 与java 环境: 2.使用jre 程序的keytool 生成密钥,java 我使用解压版本并运行目录在/usr/java, 生成tomcat. ...
- eclipse中去除build时总是js错误的问题
在用eclipse时经常莫名其名的弹出如下框框,有的时候甚至还死循环了.严重影响开发效率. 原因分析就是我们项目的一些js代码,eclipse验证时有错误的,其实是没有错误的.不知道eclipse是怎 ...
- nginx 301 永久重定向
nginx301跳转设置很简单,配置如下. (配置文件默认为nginx.conf,如果制定了新的配置文件,在新的文件配置即可.) server{ server_name xxx.com www.xxx ...