问答详情
源自:4-2 编程实现基于 UDP的 Socket 通信之服务器端

异常处理

Socket调用什么时候抛出异常,什么时候补获异常,有什么区别?

提问者:慕粉1830186116 2017-05-08 16:34

个回答

  • weibo_图八的偏头痛找到药了_03909949
    2017-05-09 14:40:01

    java 的异常可以分为两个大类,其中的RuntimeException 及其子类不要求捕捉,而其它的异常要求捕捉。比如RuntimeException 下的子异常,数组越界异常、空指针异常等。而非RuntimeException 异常有:Socket异常、IO异常等。

    RuntimeException 是在程序中可以完全避免的,比如数组越界异常,只要我在程序里作个判断,如果要访问的数组元素下标和数组的长度作一下比较就知道会不会越界。而另一方面,非RuntimeException 则是程序无法避免的,比如IO异常。