大家好啊,帮我看看这段程序的逻辑有什么问题?

lenovocn lenovocn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序说明:1.参数介绍:node是经过Dom解析后的HTML页面里的一个节点;
2.函数预期实现任务:向上递归查找node的父节点,如果父节点不是body,则一直递归;直到父节点是body时,递归才停止;
接着删除node前面的所有兄弟节点,直到node前面再没有兄弟节点为止,然后跳出该函数。

3.目前存在问题:程序在碰到某些页面时,会在执行一轮while循环后,突然跳回到try语句那一行接着往下执行,这样就会导致异常。
请大家帮忙看看是哪里出问题了。谢谢!


以下是程序代码:
行号 public void removeNodeTillParent(Node node)
772 {
773 Node pnode = node.getParentNode();
774 String pname = pnode.getNodeName();
775 if (pname.equalsIgnoreCase("body"))
776 {
778 System.out.print("\nthe node-node-node is: " + node);
779 }else{
780 removeNodeTillParent(pnode);
781 }

782 try{
783 node = node.getPreviousSibling();
784 while ((node.getPreviousSibling()!= node)&& (node.getPreviousSibling() != null))
785 {
786 pnode.removeChild(node.getPreviousSibling());
787 }
788 }catch(Exception e) {
789 e.printStackTrace();
790 }
791 }

附异常信息:
java.lang.NullPointerException
Analyzer.removeNodeTillParent(Analyzer.java:784)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
...全文

相关推荐

4、控制语句:掌握程序的执行逻辑

本文详细介绍了C#编程语言中的多种控制语句,包括选择语句(if、if...else)、循环语句(while、for、do...while)、多重选择语句(switch)以及逻辑运算符的应用。同时探讨了如何使用decimal类型进行精确的货币计算,并讲解了break和continue语句的用法。掌握这些内容将帮助开发者更好地控制程序执行流程,提高代码效率与准确性。

bean

【Python编程】Python文档字符串与代码文档化规范

内容概要:本文全面解析Python代码文档化的技术规范与工具链,重点对比Google风格、NumPy风格、Sphinx reStructuredText在文档字符串格式上的差异。文章从PEP 257文档字符串约定出发,详解__doc__属性的运行时访问、docstring的类型提示集成、以及Sphinx autodoc的自动API文档生成机制。通过代码示例展示type hints与docstring的互补使用、mkdocs的Markdown文档站点构建、以及pydoc的内置文档浏览器,同时介绍Sphinx的交叉引用(:func:/:class:)、扩展主题(Read the Docs)配置、以及doctest的文档示例自动验证,最后给出在开源项目、内部SDK、API网关等场景下的文档驱动开发(DDD)策略与文档即代码(Docs as Code)实践。 sjbzhibo.hqjxgs.com hntxmedia.com www.honglu-cy.com seriea-live-streaming.hnxskj.com cbalive.htne.com.cn

2601_97068698

毕业设计含文档和代码VB个人邮件处理系统(源代码+系统)

毕业设计含文档和代码VB个人邮件处理系统(源代码+系统)

zz_ll9023

证件照批量处理 - 批量证件照制作与换底色工具

一键批量导入照片,自动裁剪为标准证件照尺寸并替换红蓝白底色,支持自定义规格、名单映射与打包导出,快速完成团队证件照采集与制作。 主要功能:批量导入多张证件照原图、统一裁剪为标准证件照尺寸、一键替换红蓝白三色底色、内置一寸二寸等规格预设、按毫米自定义证件照尺寸、批量打包导出为压缩文件、按名单自动匹配人员信息、导入 CSV 花名册批量对应。 适用场景:证件照批量处理是一款面向企业人事、行政与摄影工作室的桌面端证件照制作工具。它把过去"一张张导入修图软件、手动裁剪、反复调整底色"的重复劳动,压缩为一次拖拽加一次点击:批量导入原始照片后,软件按所选规格统一裁剪、替换底色、排版并打包输出,让上百人的证件照采集在几分钟内完成。 说明:试用功能限制说明:本软件支持试用体验,批量处理按单次任务计算额度——每次批量任务最多可处理 5 个文件,并完整包含规格裁剪、底色替换、排版与打包导出等全部流程。当单次任务的文件数超过 5 个时,需先在软件内完成一次性功能授权,之后即可继续处理本次任务的全部文件;日常的单张处理与预览不受任何限制。

RPA知识课堂

旋转设备激光对中偏差与允许公差判定器

【适用方向】设备工程与通信协议 【工具用途】 「旋转设备激光对中偏差与允许公差判定器」用于半导体制造过程中的工程计算与分析, 帮助工艺、设备、质量与生产工程师快速完成日常数据处理工作。 【能解决什么】 · 免去手工Excel 反复整理与公式编写,直接导入数据即可出结果 · 计算过程透明,关键参数可按现场实际调整 · 输出图表与明细报表,便于直接用于汇报与存档 【包内内容】 · 工具源码(Python,可直接运行) · 使用说明(数据格式与操作步骤) · 依赖清单与示例数据 【适用人群】 半导体 FAB / 晶圆厂:工艺、设备、质量、IE、生产工程师; 以及 MES 与智能制造方向的技术人员。 【使用说明】 解压后按说明导入数据运行即可;工具在本地处理数据,不联网。

半导体智能制造 | MES工程师实战笔记
评论 3
收藏 已收藏
分享
返回顶部
lenovocn
Java SE 62,620 成员 307,251 内容