开发人员平时开发当中最烦遇到的就是异常问题。尤其对于一个刚入职场或者刚开始接触java的小白来说,每当开发过程中遇到错误,往往会搞得自己手足无措。下面楼主就简单的来说说我们平时工作开发中经常遇到的一些异常:

首先我们要明确一点:java中异常可以简单的分为两大种:编译期异常和运行期异常,两者个人理解的概念如下:

编译期异常:是指java进行编译时报的错误,通常情况需要我们必须去处理,不然系统或者项目将无法正常运行。如下图

javac编译错误个数限制 java编译时异常_异常

上面的图就是一个典型的编译时异常,我们很明显的可以看出,如果不进行处理,改程序将无法运行,所以我们在程序中可以进行简单的处理,常见的处理异常的方式有两种:一种是直接处理,一种是将其错误或者异常进行抛出处理

直接处理:指的是用 try{...}catch{}finally{...}来进行处理,其中finally可以省略,其用法如下:

                try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 } 

                catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 } 

                finally { //只要虚拟机没有退出(System.exit(0);),不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally } 

try...catch...finally...的变形:

                1、try...catch...finally....

                2、try...catch...

                3、try...catch...catch...

                4、try...catch...catch...finally....

                5、try...finally....这种做法的目的就是为了释放资源

如下代码块就是对一个编译期异常的完整的处理:

javac编译错误个数限制 java编译时异常_Exception_02

catch里面的e是异常类,当try中发生异常是jvm会帮我们生成一个异常对象,然后抛出与Catch里面的类进行匹配,如果该对象是某个类型的,就执行catch中的处理信息。

常见的异常中的方法有以下几个:  getMessage();获取异常信息,返回字符串

                                                     toString();获取异常名和异常信息,返回字符串

                                                     printStackTrace();获取异常名和异常信息,以及异常出现在程序中位置,返回值void

                                                     printStackTrace(PrintStream s);通常用该方法将异常内容保存在日志文件中,以便查阅

运行期异常:是指java运行过程中某个环节或者功能上出现的错误,即使没有及时处理,一般也不会影响系统的整体使用。

运行期异常是我们平时工作开发当中几乎每天都可能遇到的问题:常见的运行期的异常一下几点:非法字符、数组下标越界、空指针异常、格式不正确、类型错误,长度错误......各种错误。具体的错误都会在控制台上打印出来,这里我就不在这里一一展示了,平时开发过程中我们常见的错误信息记住就行。我要说的一点是,JVM默认的异常处理为我们的处理做了很明确的指示:

JVM默认的异常处理是:异常名:异常信息   然后下面可以找到我们代码中对应行的错误。如下图

javac编译错误个数限制 java编译时异常_java_03

处理异常的原则:

         如果该功能内部可以将问题处理,用try,如果处理不了,交给调用者处理,也就是throws。

区别:

        后续程序需要继续运行就用try

        后续程序不需要继续运行就用throws

发生异常当妈所在的行为12行。具体异常出来楼主就简单的说这么多,愿对各位有所帮助,有任何问题欢迎各位在文章底部留言,楼主看到将第一时间回复。