问题标签 [robustness]
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.
javascript - 向交付的代码添加新代码时使用“Try Catch”是否会产生安全边际?
这更像是一个概念性的问题,但具体来说,我正在(当前)编写一个包含大量交付代码的 javascript 文件(即供应商支持他们交付的代码,而不是我们的定制)。
因为交付的代码始终执行是必不可少的,所以我始终封装我的自定义代码的方法try{} catch(e){}
是否确保即使我的自定义代码失败,交付的代码也会执行?
我封装了每一点自定义代码。即使我要使用交付的变量,我也会将其分配给自定义 var,甚至将一行分配封装在try{} catch(e){}
.
这种方法有效吗?这种方法是否矫枉过正和/或如何改进?
这是我目前所做的:
c# - 如何优雅地重新连接到套接字
当我的程序启动时,我有一个连接到端点的以下方法
我还有一个计时器,它设置为每 60 秒触发一次 call CheckConnectivity
,它尝试将任意字节数组发送到端点以确保连接仍然有效,如果发送失败,它将尝试重新连接。
因此,我如何测试上述内容是从我的以太网设备上物理拔下 LAN 电缆,允许我的代码尝试重新连接(显然失败)并重新连接 LAN 电缆。
但是,即使重新连接 LAN 电缆(能够 ping),我的 Reconnect 方法中的 ChannelSocket.Connect(ChannelEndPoint) 总是会抛出此错误
如果我要重新启动整个应用程序,它会成功连接。如何调整我的重新连接方法,这样我就不必重新启动我的应用程序来重新连接到我的以太网设备?
unicode - 操作系统何时以及如何以与我提供的名称不同的名称存储文件?
我在另一个关于 Unicode 的 SO 问题下找到了这个声明,我想进一步详细说明这个相当令人惊讶的事实。
- 相信一旦您成功创建了一个给定名称的文件,当您在其封闭目录上运行 ls 或 readdir 时,您实际上会发现使用您创建它的名称的文件是错误的、损坏的和错误的代码。不要对此感到惊讶!
这种情况什么时候发生,该怎么办?
c++ - 我应该如何设计一个健壮的监听器对象?
假设您必须拥有对象具有不相关生命周期的 A 和 B 类:
有一次,我在 B 的对象上注册了一个从 A 对象获得的 StateChanger。现在 A 死了,销毁了它自己的 StateChanger。但是 B 在 StateChanger 上活着并调用了一个方法,因为它认为它还活着。我的目标是使 Notify() 方法尽可能健壮。
当然,我们可以编写一些自动注册/注销观察者。这对我来说似乎有很多开销。
或者传递一个weak_ptr,这意味着在IA 对象上创建StateChanger 作为shared_ptr。而且,我需要有一个额外的方法来返回 IA 的 weak_ptr 而不是引用,当有人直接使用 A 时,这很难看。
或者,我可以写一个关于如何正确使用 API 的评论,并且在 B 处取消注册 StateChanger 的情况下杀死 IA 是邪恶的。这肯定会导致崩溃。
根据我的阅读,observer_ptr 可能是一种选择——但它还没有标准化。
所以这是我的问题:我的想法是否错误?有没有更简单的设计?
r - 添加稳健标准错误后,如何在 R 中命名/保存模型?
在校正 R 中的异方差后如何命名模型?基本上,我如何保存模型以使其包含稳健的标准错误?如果有什么不同,我正在使用 plm 包。
所以假设我有下面这两个模型:
但后来我纠正了异方差:
如何保存模型以便进行 Wald 测试来比较两者?我尝试执行以下操作,但似乎不正确:
基本上,我试图能够执行以下操作,但具有强大的标准错误:
javascript - 如何使用 Promise 正确处理 express.js 中的错误(字符串或对象)
我不是第一个 express.js 应用程序,尽管我仍然需要找出处理错误的最可靠的方法。
由于 io.js 是几个月前的现实,我正在使用本机 Promises 来帮助自己处理异步性,以下代码反映了这一点。
我的错误处理中间件如下:
一个示例控制器是这样编写的:
如您所见,express 中间件看起来非常整洁和优雅。
我通常在 中处理所有有趣的错误给用户rejects()
,其中一些是用我告诉错误处理中间件的对象调用的。
示例中的问题是service
第 3 方库。这些库有时会返回一个字符串,有时会返回一个对象(来自外部 API),有时会返回一个 javascript 错误。
目前我无法处理自定义 javascript 对象,此外,如果我想向用户抛出错误 500,我必须这样做,reject(new Error(err));
但有时这err
是一个对象,导致:
这一点都不酷,我真的很想找到一种方法来优雅地处理这些错误,而无需添加代码(如果可能的话),因为我发现这种语法非常优雅和简洁。
python - 如何在 Python 中读取不纯文本?
Python 对其文本编解码器非常挑剔。不幸的是,任何事情都可能并且将会在文本中发生,外来词和行噪音是主要的例子。发生这种情况时,我不能让我的生产系统显示错误并停止。什么是好的故障保护方法?有没有我可以使用的方法或库,例如,简单地忽略编解码器无法识别的任何内容?
matlab - 通过取出一些 for 循环(2D 离散傅里叶变换)使 Matlab 代码更健壮
这是我的二维离散傅里叶变换代码。我知道,这有点暴力,但在本学期学习数学物理之前,我没有太多编程经验。
我想知道为什么我的程序这么慢,如果有什么东西可以让它变得更健壮[它需要这么长时间,我希望比我更有经验的人能看出什么问题]。
unix - FTP vs SFTP,这次-稳定性
我读过一篇关于 FTP/SFTP 速度的好文章:为什么当我通过 SFTP 传输文件时,它比 FTP 需要更长的时间?
但是有没有人检查,或者有证据或文件,测试表明这两个在传输文件(数千个小文件和几个大文件)时哪个更“稳定” ?
使用本机客户端/服务器(Unix)的哪种协议(SFTP、FTP)更可能断开连接或能够重新连接甚至检测到停止的连接,并且不太可能弄乱文件
testing - 我忘记测试哪些类型的带外故障?
几年前我遇到了一个惊人的演示文稿(当然我找不到),其中列出了人们通常不会测试的一系列远程服务故障。
除了超时、4xx、5xx 等之外,它还列出了以下内容:
- 10 字节数据后连接关闭
- 返回 www.google.com 的内容
- 返回 /dev/random 的内容
- 返回 /etc/passwd 的内容
- 返回格式正确的 unicode 中文文本
- 返回 ansi 颜色控制字符
- 返回不正确的内容类型,正确标记(您请求的内容类型:应用程序/json,我发回内容类型:应用程序/jpeg)
- 每 29 秒返回一个字节的数据
您遇到过哪些类型的“带外故障”开发人员通常不(但应该)测试?
(如果您能找到原始演示文稿,则可获得额外奖励积分)