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工具网。
推荐阅读: