栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学习文件day23+24

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习文件day23+24

throws 关键字 当一个方法中使用 throw 抛出一个非 RuntimeException 的异常时,就要在该方法上使用 throws 声明这个 异常的抛出。此时调用该方法的代码就必须处理这个异常,否则编译不通过。 package exception ; public class Person { private int age ; public int getAge () { return age ; } public void setAge ( int age ) throws Exception { if ( age < 0 || age > 100 ){ // 使用 throw 对外抛出一个异常 // throw new RuntimeException(" 年龄不合法 !"); // 除了 RuntimeException 之外 , 抛出什么异常就要在方法上声明 throws 什么异常 throw new Exception ( " 年龄不合法 !" ); } this . age = age ; } } 当我们调用一个含有 throws 声明异常抛出的方法时,编译器要求我们必须处理这个异常,否则编译不通 过。 处理手段有两种 : 使用 try-catch 捕获并处理这个异常 在当前方法 ( 本案例就是 main 方法 ) 上继续使用 throws 声明该异常的抛出给调用者解决。 具体选取 那种取决于异常处理的责任问题。 当我们调用一个含有 throws 声明异常抛出的方法时 , 编译器要求 我们必须添加处理异常的手段 , 否则编译不通过 . 而处理手段有两种 1: 使用 try-catch 捕获并处理异常 2: 在当前方法上继续使用 throws 声明该异常的抛出 具体用哪种取决于异常处理的责任问题 注意,永远不应当在 main 方法上使用 throws!! 含有 throws 的方法被子类重写时的规则 java 网络编程 java.net.Socket Socket( 套接字 ) 封装了 TCP 协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获 取两个流 ( 一个输入一个输出 ) ,然后使用这两个流的读写操作完成与服务端的数据交互 java.net.ServerSocket ServerSocket 运行在服务端,作用有两个 : 1: 向系统申请服务端口,客户端的 Socket 就是通过这个端口与服务端建立连接的。 2: 监听服务端口,一旦一个客户端通过该端口建立连接则会自动创建一个 Socket ,并通过该 Socket 与客 户端进行数据交互。 如果我们把 Socket 比喻为电话,那么 ServerSocket 相当于是某客服中心的总机。 与服务端建立连接案例 : 客户端与服务端完成第一次通讯 ( 发送一行字符串 ) Socket 提供了两个重要的方法 : OutputStream getOutputStream() 该方法会获取一个字节输出流,通过这个输出流写出的字节数据会通过网络发送给对方。 InputStream getInputStream() 通过该方法获取的字节输入流读取的是远端计算机发送过来的数据。 需要注意的几个点 : 1: 当客户端不再与服务端通讯时,需要调用 socket.close() 断开链接,此时会发送断开链接的信号给服务 端。这时服务端的 br.readLine() 方法会返回 null ,表示客户端断开了链接。 2: 当客户端链接后不输入信息发送给服务端时,服务端的 br.readLine() 方法是出于阻塞状态的,直到读 取了一行来自客户端发送的字符串。 多客户端链接 之前只有第一个连接的客户端可以与服务端说话。 原因 : 服务端只调用过一次 accept 方法,因此只有第一个客户端链接时服务端接受了链接并返回了 Socket, 此时 可以与其交互。 而第二个客户端建立链接时,由于服务端没有再次调用 accept ,因此无法与其交互。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号