问题标签 [program-flow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java try-catch-finally 中的奇怪错误
我正在使用 JODConverter 将 .xls 和 .ppt 转换为 .pdf 格式。为此,我有类似的代码
我的输出:
PS返回方法的类型是void
这怎么可能 ?即使connection.connect() 中存在一些问题,它也会出现在catch 块中。使困惑
c# - ShowDialogue另一个窗口时的程序流程
考虑流动的场景
正如您可以从上面的代码中观察到的那样,我是方法中间的另一个窗口,我希望在完成新窗口后流程继续,但事实并非如此,我想我在这里遗漏了一些明显的东西, 任何帮助都感激不尽
提前致谢
javascript - 我如何理解返回函数的函数?
这是我正在努力的示例代码:
有没有办法用数学术语或遵循流程或其他方式? 我不知道为什么 10 是 x 而 9 是 y。
c++ - 更好,或以不同方式编码相似功能的优势
我正在为 GUI 编写代码(在 C++ 中),现在我关心的是行中文本的组织。我遇到的一个问题是代码变得非常长且令人困惑,并且我开始进入 ^2 场景,其中对于我为文本演示添加的每个选项,我必须使用的函数数量写是它的平方。在试图解决这个问题时,出现了一个特定的设计选择,我不知道更好的方法,也不知道它们之间的优缺点有多大:
我有两种在流程中非常相似的方法,即遍历相同的对象,考虑到相同的约束,但最终在此流程之间执行不同的操作。对于任何人的兴趣,这些方法都会渲染文本,并确定是否有任何文本由于将文本分别环绕在其他对象周围或仅是行尾而溢出行。
这些函数需要为左、右或居中的文本复制和重写,它们有不同的流向,所以我做出的任何设计选择都会重复三遍。
基本上,我可以继续我现在所拥有的,这是处理这些不同操作的两种不同方法,或者我可以将它们合并到一个函数中,其中包含 if 语句以确定是否呈现文本或找出是否有文本溢出。
有没有普遍接受的正确方法来解决这个问题?否则,所涉及的权衡是什么,有哪些迹象表明应该使用一种方式而不是另一种方式?还有其他方法可以做我错过的事情吗?
我已经对此进行了几次编辑,以尝试使其更易于理解,但如果不是,请问我一些问题,以便我进行编辑和解释。我也可以贴出这两种不同方法的源代码,但是它们使用了很多函数和对象,解释起来需要很长时间。
// 编辑:源代码 //
功能一:
无效 GUITextLine::renderLeftShifted(const GUIRenderInfo& renderInfo) { if(m_renderLines.empty()) 返回;
功能二:
矢量 GUITextLine::recalculateWrappingContraints_LeftShift() { m_pixelsOfCharacters = 0;
所以基本上,render() 将 renderCoordinates 作为参数并从中获取它需要渲染的全局位置。calcWrappingConstraints 计算出对象中有多少文本超出了分配的空间,并将该文本作为函数返回。
m_renderLines 是两个浮点结构的 std::vector,其中 .s_x = 可以开始渲染的位置和 .s_y = 渲染空间的大小 - 不是,它本质上是“renderLine”的宽度,而不是它的结束位置。
m_text 是 GUIText 对象的 std::vector,其中包含文本字符串和一些数据,如样式、颜色、大小等。它还包含在 s_font 下,对字体对象的引用,该对象执行渲染,计算字形的宽度等。
希望这可以解决问题。
c# - 当前在 C# 中跟踪程序流的可能性?
几年前我使用Postsharp在执行期间跟踪程序流程,而无需手动将跟踪语句添加到方法中。
是否有任何其他新方法可以以类似的方式跟踪执行以调试输出?
(最好是一种不需要检测已构建程序集的方法。也许不可能?)
c# - 正确处理文件流和二进制流以及处理文件流
事实上,我尝试对我的代码进行防错,最后让它看起来很乱。
我设置了一个功能来读取某种类型的文件。如果有问题,我希望函数返回 false,如果一切正常,我希望函数返回 true。我无法弄清楚如何构建所有内容。
我有一个尝试打开文件流的初始 try-catch 块。不过在那之后,我在读取过程中进行了某些其他检查,例如文件大小和某些偏移量的值。我设置它的方式是使用 if else 语句。如:
...br 是二进制阅读器,fs 是文件流。有很多这样的块,多次编写相同的东西似乎是一种不好的做法。首先想到的是将整个事物包装在 try-catch 语句中并抛出异常,而不是使用 if else 块。我记得在阅读有关 try-catch 语句时,最好有它们,但不要用它们包装所有内容。老实说,我仍然不完全理解为什么将所有内容都包含在 try catch 语句中是不好的做法,因为它们仅在出现错误时才有效,在这种情况下程序无论如何都会向南...
另外,我是否必须关闭二进制读取器和文件流,或者关闭一个关闭另一个?有什么方法可以使用它们而不必处理它们?
php - 应该使用 `if ($a != NULL)` 还是 `if ($a !== NULL)` 来控制程序流程?
这可能是一个令人痛苦的基本问题,但我想知道有关使用 PHP是否相同 !==
与是否等于 !=
控制流的性能问题。
考虑以下简单的 PHP 函数:
从性能的角度来看,是否最好使用if same ( !==
) 来防止 PHP 遍历变量类型,试图找到一个有效的比较?
我假设!==
首先比较变量类型,如果失败,它会立即返回FALSE
? 自 PHP3 以来,我!=
几乎将其用作反射。现在我正在处理一些计算密集度更高的项目,分钟性能方面的考虑变得更加令人担忧。
当然,欢迎对流控制优化提出其他意见!
c++ - 在 C/C++ 中控制通过内存地址的程序流
抱歉,如果标题有点晦涩难懂,我不是母语人士,在制定我的想法时遇到了一些麻烦......
假设我拥有在内存中编译和创建的要执行的程序集合的所有必要函数和对象,并且我知道它们的地址和大小,我如何使用基本上是伪“二进制”文件来控制程序的流程一个脚本,上面写着“将此数据推送到此函数的地址,调用此函数地址,将返回的值推送到此函数地址”等等......
基本上我需要处理伪“机器”代码以通过它们的内存地址访问和动态控制互连对象和静态逻辑的集合。
谢谢!
编辑:请在关闭我的问题之前发布一些代码片段,作为一个没有真正提供我需要的具体信息的问题的副本。
EDIT2:从下面的评论中添加了这个,可能会给我的问题带来更多的澄清:
我没有编译整个程序,而是尝试使用预编译的组件在旅途中创建动态对象。对象树可以序列化到磁盘并立即重新创建(将整个树分配在池中而不是逐个对象)所以我有一种方法来创建一个动态程序,将其保存到磁盘并在内存中重建它,所有设计时标识符都替换为它们的地址。现在我需要的只是一种让整个程序结构运行的方法。
php - PHP“或”语法
我已经看到了很多:$fp = fopen($filepath, "w") or die();
但我似乎找不到任何关于这种“或”语法的真实文档。它的作用很明显,但我可以在任何地方使用它吗?必须跟在后面die()
吗?or
当您可以使用类似
我知道这似乎是一个愚蠢的问题,但我找不到任何硬性规定。谢谢。
java - 在Java中的按键上返回/停止执行函数
我的程序中有一个特定的功能,我想在按下一个键时停止。我为此目的设置了一个本机键盘挂钩。现在,当检测到该键时,我调用 System.exit(0)。但是,我不想退出程序,只需停止该操作并返回调用它的位置即可。下面给出一个例子。
我已经尝试将 foo() 的调用放在一个线程中,以便我可以调用Thread.interrupt()
,但我希望函数调用是阻塞的,而不是非阻塞的。还有阻塞的 IO 调用,foo()
所以除非有必要,否则我宁愿不处理中断,因为我必须处理ClosedByInterruptException
异常并且这之前已经引起了问题。
此外,它的主体foo()
很长,里面有很多函数调用,所以if (stop == true) return;
不能在函数中编写。
有没有比制作阻塞线程更好的方法来做到这一点?如果是这样,怎么做?如果没有,我将如何制作阻塞线程?