问题标签 [global]

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.

0 投票
3 回答
618 浏览

c# - 如何“全局”捕获对象实例中抛出的异常

我目前正在编写一个 winforms 应用程序(C#)。

我正在使用企业库异常处理块,按照我所看到的相当标准的方法。IE:在 Program.cs 的 Main 方法中,我已将事件处理程序连接到 Application.ThreadException 事件等。

这种方法效果很好,可以处理应用程序的异常情况。

在我的一个业务对象中,我在对象属性之一的 Set 访问器中抛出了各种异常

我对这种方法的逻辑(没有把它变成“何时抛出异常”的讨论)只是业务对象负责检查业务规则约束并抛出一个可以根据需要冒泡并被捕获的异常。应该注意的是,在我的应用程序的 UI 中,我确实明确检查了公共属性设置为的值(并在那里采取行动,显示友好的对话框等)但是抛出异常我也涵盖了我的业务对象的情况UI 可能不会使用该属性,例如:该属性正在由另一个业务对象设置。无论如何,我想你们都明白了。

我的问题是这些异常没有被连接到 Application.ThreadException 的处理程序捕获,我不明白为什么。

从其他阅读中,我完成了 Application.ThreadException 事件,它处理程序“......捕获主 GUI 线程上发生的任何异常”。我的业务对象中引发的异常不在此线程中吗?我还没有创建任何新线程。

如果我按如下方式更新代码,显式调用连接到 Application.ThreadException 的事件处理程序,我可以获得该方法。这是企业库示例中概述的方法。然而,这种方法需要我包装在 try catch 中抛出的任何异常,这是我试图通过使用“全局”处理程序来避免的。

我还研究了使用将处理程序连接到 AppDomain.UnhandledException 事件,但这也没有捕获异常。

如果有人可以向我解释为什么我的异常没有被第一个代码示例中的全局异常处理程序捕获,我会很好。是否有我遗漏的另一种方法,或者我是否根据需要在 try catch 中使用包装代码,如上所示?

0 投票
3 回答
8082 浏览

global - SAS 宏全球范围

有没有一种捷径可以让在宏范围内创建的所有宏变量都在全局范围内?

IE:

0 投票
8 回答
1358 浏览

c++ - 工厂模式与全局状态不是一回事吗?

假设我有这样的课程:

如果没有工厂,我需要执行以下操作才能实例化MonkeyFish.

另一方面,如果我有MonkeyFishFactory,似乎我必须这样做:

  1. 我仍然有全局对象。

  2. 即使 MonkeyFishFactory 本身在GlobalObjects内部创建了(所以它们现在在 MonkeyFishFactory 内部而不是真正的全局变量中),看起来 MonkeyFishFactory本身仍然需要是一个全局对象,以便我可以随时访问它来创建一个MonkeyFish.

在这种情况下,工厂模式与全局状态不是一回事吗?

(我目前的假设是全局状态是一件坏事,消除它是一件好事。)

0 投票
2 回答
2900 浏览

.net - .NET MVC - 全局设置类 - 这些方法中哪个最好:

好的,所以我试图创建一个设置类来存储我需要在整个系统中访问的某些字符串。我使用以下代码创建了一个 globalSettings.cs:

目前我已经在我的每个控制器中初始化了这个类,如下所示:

**我应该将构造函数设置为私有并实现单例模式,因为它毕竟是一个设置类并且只需要一个实例吗?

使用其中的设置信息扩展控制器类会更好吗?

**

0 投票
0 回答
4466 浏览

c++ - Linux中的全局键盘挂钩?

如何在 Ubuntu (Linux) 中编写全局键盘钩子(如 Windows 的 Hook)

在 C/C++ 或 Python 中

0 投票
7 回答
3754 浏览

gcc - 为什么 gcc 会为局部变量而不是全局变量提供未使用变量的错误?

我有一个关于 gcc 的问题。为什么当我在函数中本地定义变量时出现未使用变量的错误,但当变量在唯一文件中是全局时却没有?

我可以理解它可以用于其他人,但要做到这一点,我需要把外部词正确吗?

提前致谢。

0 投票
2 回答
7660 浏览

c# - Global.asax 中的 ASP.NET C# Application_Error 无法访问会话变量

我有我的错误处理设置来跟踪所有异常并将我们需要的信息写入数据库并通过电子邮件发送给需要了解错误以便修复它的开发人员。我遇到的问题是在页面完全加载之前发生错误。在这种情况下,我要跟踪的会话变量在 Application_Error 中不可用。所以我做了以下事情,这样我的错误处理就不会出错,但必须有更好的方法。此外,如果页面加载并且在提交表单时发生错误,则会话变量可用。

任何帮助是极大的赞赏。谢谢!

0 投票
2 回答
126 浏览

static - 许多具有全局和局部状态的对象

我正在为以下情况寻找最佳设计。

我们有许多对象形成一个类,例如相框。现在每个相框可以显示3种图片。1) 一张脸 2) 截图 3) 空的

这很容易:

我们现在可以创建一些具有不同图片的 PictureFrames,并轻松更改每张图片的模式。

现在我想为所有 PictureFrames 添加一个全局设置器。然后每个新的 PictureFrame 都应该将全局设置作为默认设置。稍后可以将其设置为不同的通过。

这是我的解决方案,但我想讨论是否有更好的解决方案。

我在所有 PictureFrames 都可以访问的 PictureFrame 类中添加了一个静态字段 PictureFrame.Instances。现在我可以遍历所有 PictureFrames 以将新的全局模式应用于所有帧。

此外,我还有第二个静态字段 PictureFrame.GlobalImageMode,如果我在所有帧上更改它并在 PictureFrame 的构造函数中读取它,我将在其中设置全局模式。GlobalImageMode 的设置器在 PictureFrame 类中也可以是静态的。

0 投票
1 回答
472 浏览

python - 传播应用程序设置

可能是一个非常常见的问题,但还没有找到合适的答案..

我有一个(带有 C++ 模块的 Python)应用程序,它大量使用 SQLite 数据库,并且它的路径由用户在应用程序启动时提供。

每次应用程序的某些部分需要访问数据库时,我计划获取一个新会话并在完成后将其丢弃。为此,我显然需要访问启动时提供的路径。我看到它发生的几种方式:

1. 明确的论点

数据库路径通过显式参数传递到它需要的任何地方,并且数据库会话使用该显式路径进行实例化。这可能是最模块化的,但似乎非常尴尬。

2. 数据库路径单例

数据库会话对象如下所示:

我认为这是一个不那么邪恶的单例,因为我们只存储常量字符串,在应用程序运行时不会改变。这样就可以在DatabaseSession必要时覆盖默认值并对该类进行单元测试。

3.数据库路径单例+静态工厂方法

也许比上述略有改进:

这种方式模块根本不依赖foo.options,除非我们使用工厂方法。此外,该方法可以执行诸如会话缓存之类的东西。

还有其他模式,我不知道。我在 web 框架中隐约看到类似的东西,但我对这些没有任何经验。我的示例非常具体,但我想它也会扩展到其他应用程序设置,因此是帖子的标题。

我想听听你的想法,什么是最好的安排方式。

0 投票
1 回答
905 浏览

vim - 如何在 VIM 中递归使用 Global?

":g-2-g/3/" 中是否有问题,或者全局中的递归是否丢失了?我无法理解错误的原因:

E147:不能做:全局递归

如何在 VIM 中进行递归全局搜索?

[尼尔对运营商的初步建议\| ]

一个缺点是组合会随着 n 个数字扩展。对于三个数字,组合数为 3!(=6) 即

对于 n 个数字,组合的数量是 n!。

[使用运算符 \& 的解决方案]

Brian Carper 和 Neil Butterworth 找到了解决方案。非常感谢他们!

它适用于整条线: