<
>

如何在开发过程中建立游戏服务器的异常机制

2016-06-15 18:20:28 来源:易采站长站 作者:互联网

  如何在开发过程中建立游戏服务器的异常机制

  所谓游戏服务器的异常机制是指当游戏服务器程序出现错误后,设置特定的流程来处理这些错误.具体来说,异常机制提供了游戏服务器程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器.

  在我们传统的处理异常的办法中,我们设定函数返回一个特殊的结果来表示出现异常,调用该函数的程序负责检查并分析函数返回的结果.当然这种传统的方法也有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混爹在一起;由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解.在开发过程中要想建立合适游戏服务器的异常机制,我们须注意以下三点:

  

 

  一、程序编写员需要明白:异常处理不能代替简单的程序逻辑.在游戏中如果我们使用redis做缓存的话,可能会遇到这样的需求:从一个sortset集合中获取一个玩家排行榜的积分,一般的常用方法主要有两种,根据不用程序编写员的编写习惯,选择哪一种编写方法我们在这里就不一一讨论了,但是我们首先在编写时需注意以下两点:1.遇到错误,方法立即结束,并不返回一个值;同时,抛出一个异常对象.2.调用该方法的程序也不会继续执行下去,而是搜索一个可以处理该异常的异常处理器,并执行其中的代码.

  二、编写异常机制时,程序编写员不要过分的细化异常:有些程序编写员习惯把每条语句都放在一个单独的Try/catch中.这种编码方式将导致异常急剧膨胀,如果程序中有多个操作,当任务一个操作出现问题时,整个任务就会被取消,则可以将它们放在同一个try中,这样程序代码会更清晰,同时也达到了将正确处理与错误处理分开的异常处理目标.

  三、程序编写员需要充分利用其所编写程序的异常层次的结构,不要只抛出RuntimeException异常,应该寻找更加适当的子类或者创建自己的异常类.在程序里尽量不要捕获Exception以及更抽象的异常.这样的异常携带的信息量太少,会使程序代码更加难读和维护.

  四、程序编写员需要合理使用传递这些所编写的异常.例如:在游戏服务器开发中,我们一般分为几个层次:1.Command处理层;2.逻辑处理层;3.缓存层;4.数据持久化层.我们举个例子,当缓存层的redis出现异常时,这时候我们就可以抛出一个自定义的RedisFailedException异常,因为我们没办法在此处理失败的业务.比如一个查询失败了,如果在缓存捕获异常,我们只能返回null,可是上层业务可能根据结果是null认为缓存不存想要的数据,而去数据库查询了,可能会出现脏数据.而返回异常,可以让上层视情况而定.

  在编写以上异常机制时,我们一般都采取分层结果,每层都可能抛出异常,一般情况下,建议将异常向上传递,让高层次的方法告知用户发生的错误,或者不成功的命令更加适宜.更多的游戏服务器租用、开发咨询请您关注我们天运科技(http://www.tianyunidc.com)!!!

暂时禁止评论

微信扫一扫

易采站长站微信账号