java异常就是在进行java开发以及运行的时候,出现的非正常的情况,最终导致JVM的非正常停止,这种情况相信很多java开发人员都遇到过,不过大家不用担心,其实java异常处理机制还是有优点的,那java异常处理机制的优点有哪些?下面来我们就来给大家讲解一下。
Java语言按照面向对象的思想来处理异常,使得程序具有更好的可维护性。Java异常处理机制具有一下优点:
1.把各种不同类型的异常情况进行分类,用Java类来表示异常情况,这种类被称为异常类。把异常情况表示成异常类,可以充分发挥类的可扩展和可重用的优势。
2.异常流程的代码和正常流程的代码分离,提高了程序的可读性,简化了程序的结构。
3.可以灵活的处理异常,如果当前方法有能力处理异常,就捕获并处理它,否则只需要抛出异常,由方法调用者来处理它。
java如何创建自己的异常?
用户定义异常是通过扩展Exception类来创建的。这种异常类可以包含一个“普通”类所包含的任何东西。下面就是一个用户定义异常类例子,它包含一个构造函数、几个变量以及方法:
public class One { public static void main(String str[]) throws ServerTimedOutException { throw new ServerTimedOutException("Could not connect", 80); // 使用语句来抛出已经创建的异常 } } class ServerTimedOutException extends Exception { private String reason; private int port; public ServerTimedOutException(String reason, int port) { this.reason = reason; this.port = port; } public String getReason() { return reason; } public int getPort() { return port; } }
实例:考虑一个客户服务器程序。在客户代码中,要与服务器连接,并希望服务器在5秒钟内响应。如果服务器没有响应,那么,代码就如下所述抛出一个异常(如一个用户定义的
ServerTimedOutException)。 public void connectMe(String serverName) throws ServerTimedOutException { int success; int portToConnect = 80; success = open(serverName, portToConnect); if (success == -1) { throw new ServerTimedOutException( "Could not connect", 80); } }
要捕获异常,使用try语句:
public void findServer() { ... try { connectMe(defaultServer); } catch (ServerTimedOutException e) { System.out.println("Server timed out, trying alternate"); try { connectMe(alternateServer); } catch (ServerTimedOutException e1) { System.out.println("No server currently available"); } } ... 也可能部分地处理一个异常然后也将它抛出。 如: try { ..... ..... } catch (ServerTimedOutException e) { System.out.println("Error caught "); throw e; }
我们按照这样的方法就可以创建异常了,java开发中有异常其实可以以充分发挥类的可扩展和可重用的优势。因此大家遇到java异常不必慌张!最后大家如果想要了解更多java常见问答知识,敬请关注奇Q工具网。
推荐阅读: