java基础day17

Day17
一、异常(在程序运行的时候发生的错误,Throwable是异常的一个超类)

1、异常的体系结构:Error,Exception是Throwable的直接子类;

  • Error很严重的错误,一般是jvm报的错误,需要修改源代码;
  • Exception不是很严重的错误,但必须解决;
  • RuntimeException运行时异常是Exception的一个重要的直接子类,但不需要开发人员处理,由jvm处理;

2、jvm自带处理异常机制:

  • 将异常的信息(时间、地点等)打印出来;
  • 将程序终止;
如果程序发生异常,没有任何方法或类去处理这个异常,最后交由jvm来处理  

3、手动处理异常
(1)抛出异常,让调用者去处理异常(捕获或抛出)
(2)程序员自己处理异常(关键字try、catch、finally、throw、throws):

第一种方法:try{ 有可能发生异常的代码 }catch(异常类型 异常对象){ 一般打印异常信息 }  
  • 执行的流程:没有发生异常,执行try里的代码==>执行完毕(不执行catch),发生异常后,从异常处直接跳到catch代码块
  • 处理多个异常:try{ 有可能发生异常的代码 }catch(异常类型1 异常对象){ 代码块1 }……catch(异常类型n 异常对象){ 代码块n }(满足catch异常类型才执行catch的代码块,且异常类型由小及大)
第二种方法(最常用):try{ 有可能发生异常的代码 }catch(异常类型 异常对象){ 一般打印异常信息 }finally{ 不管发不发生异常都会执行这个代码块 }  
  • 如果遇到return,先执行完finally里的代码,然后执行return,只有System.exit(0)杀死jvm才能不执行finally
  • finally代码块一定会执行的特点,所以在关闭与释放资源有很大作用(IO流的关闭)
  • 在jdk1.7之后,catch()括号里可以存在多个异常,使用“|”链接
  • 在开发中,如果有多个异常,最后都会捕获一个最大异常Exception
  • 捕获异常,如果具体到某一种类型的异常,尽量具体,方便解决问题
第三种方法(不常用):try{ 可能发生异常的代码 }finally{ 不管发不发生异常都会执行的代码 }  
  • 并没有具体捕获异常,只是让代码分离,结构比较清晰

(3)异常分类:

  • 编译时异常:也就是在代码运行之前就会报错;
  • 运行时异常:RuntimeException在.class文件在运行时jvm发出的异常,是Exception的直接子类;
  • 常见的一些异常:rithmeticException算术异常;ParseException格式转化异常错误;java.lang.NullPointerException空指针异常;

(4)Throwable异常常规方法(子类没有特别的方法):

  • public StackTraceElement[] getStackTrace():打印其堆栈信息(也就异常信息);
  • public String getMessage():返回此异常的详细消息字符串;
  • public String toString():返回此异常的简短描述;

(5)throw:异常的声明(可以在方法里声明自己想声明的异常)

  • 声明异常格式:throw(关键字)+具体的异常类型
  • 声明的异常必须写在方法里,必须是Exception类或其子类,如果是运行时异常可以不处理,其他的都要处理

(6)throws:抛出异常(格式:throws+异常类型),必须写在方法括号后,必须是Exception或其子类

throw和throws的区别:  
  • throw是声明,后面处理异常或抛出;throws就是抛出异常
  • throw声明确实会发生的异常,throws抛出的不一定会发生异常
  • throw后面只能声明一个异常,throws可以抛出多个异常

(7)自定义异常,继承父类一般分两种情况:继承Exception(常用)或继承RuntimeException

二、File(文件类)是一个文件对象和目录路径的抽象表现形式,在java.io包下

1、路径:绝对路径(具体到盘符),相对路径(相对参照物)
2、Windows的根路径是盘符,Unix的根路径是斜杠(\)

注意点:File类的实例是不可变的,一旦创建,对象表示的抽象路径名不可改变,因为只能通过构造器给对象路径  

3、File对象的构造方法:

  • public File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例;
  • public File(String parent,String child):parent表示父级目录路径(字符串),child 表示子目录(字符串);
  • public File(File parent,String child):parent表示父级目录路径(文件对象),child 表示子目录(字符串);
注意点:只要存在父子关系,必须父目录存在  

4、常规方法:
(1)创建:

  • createNewFile():创建文件的方法;
  • public boolean mkdir():创建一个文件夹;
  • public boolean mkdirs():如果父目录不存在,一同创建父目录;
  • public boolean delete():删除一个文件或空的文件夹(删除的文件不会进入电脑垃圾回收站);
  • public boolean renameTo(File dest):重命名文件(如果在同一个目录下,是修改其名字,如果不在同一个的目录下是剪切+修改名字);

(2)判断:

  • public boolean exists():判断这个文件是否存在;
  • public boolean isDirectory():判断是否是文件夹;
  • public boolean isFile();是否是一个文件;

(3)获取:

  • public String getAbsolutePath():获取文件的其绝对路径;
  • public String getPath():获取构造方法传递的那个参数的路径(new File(“d:\1.txt”));
  • public String getName():获取文件的名称;
  • public String getParent():返回上一级目录;
  • public long length():文件内容的的长度(字节数);
  • public String[] list();返回的是改目录下的第一级的所有文件包括文件夹;
以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值