java异常处理机制的优点有哪些?java如何创建自己的异常?

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工具网。

推荐阅读:

qt使用的人多吗?qt能做什么?

java开发工程师面试题有哪些?java开发工程师面试题

hibernate是什么框架?hibernate对象三种状态是什么?