问题标签 [catch-block]

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 回答
1241 浏览

c# - 当 SQL Select 不返回任何内容时如何避免引发错误

我在某处读到,永远不应该将错误条件用作正常的程序流程。对我来说很有意义......但是

位于 MySQL 数据库之上的 C# 应用程序。我需要将一个字符串值解析为两部分,一个 ID 和一个值。(原始数据来自泥盆纪数据库),然后根据查找表验证该值。因此,一些原始字符串可能如下所示:

《6776紫食人》

“BIK 黄色波点比基尼(正在使用中)”

“DCP平分政变”

所以,我的小工具根据第一个空格的索引(幸运的是,一致)将每个字符串解析为 ID 和描述。然后我将 ID 传递给查找,获取新值,然后我们就走了。

不幸的是,TPTB 还决定我们不再需要臭黄色波点比基尼(目前正在使用)。因此,BIK 不会返回一行。这是一个代码片段:

真的,真的很丑!特别是我在 catch 块中测试无效 ID 的部分。必须有更好的方法来处理这个问题。

如果有人可以帮助我,我将不胜感激。

谢谢。

0 投票
1 回答
653 浏览

c# - Code is only executing in the debugger - MS Visual C#

I'm using Microsoft Visual C# 2008 Express Edition. (And I apologize - this is more of a MS Vis C# usability question than a strict programming question...)

I wrote a little program. when I run it in MS VC# with the debugger, all is well. When I use the "click Once" to generate something to deploy (I'm using the "from a CD-ROM" option as opposed to "from a website) , and then I install it on my machine (or a different machine) and all is well except a piece of the code doesn't run!

The code that isn't running is the "catch" part of a try/catch loop. I intentionally have a bug I know generates an exception still in the application so I can test this catch. The catch brings up a GUI and asks the user to send data back to me. In the debugger - this works fine. In the standalone, published app, this doesn't work.

any ideas?

I point out that I'm running the "Express edition" because a friend mentioned that I might have a deployment "issue" and it appears that the Express Edition is limited in deployment options and that maybe the Standard edition is what I need... (since I can use Windows Installer instead of the "click once" publish method).

Does any of this make sense?

Appreciate the help!

-Adeena (an old command line unix C++ programmer who's struggling to make sense of this Microsoft "Visual" world)

0 投票
5 回答
6417 浏览

java - Java 中的 try-catch 块 - catch 代码中的执行语句

我对 Java 中的 catch 块中语句的执行顺序有疑问。当我运行以下类 Test1(见下文)时,我希望首先输出 Hi!,然后是 e.printStackTrace(); 声明,然后再见!但是,我从来没有收到过这个订单。请查看我在下面粘贴的输出。

输出1:

输出2:

我有两个问题:

1.)更重要的问题:为什么我总是有嗨!再见!总是一个接一个地打印,即使代码中的 mye.printStackTrace() 在它们之间?

2.) 为什么有时我在 Hi! 之前有语句 e.printStackTrace() 的输出,有时在再见!? 我已经多次运行该程序,但我无法理解在什么情况下我会得到一份或另一份打印。

谢谢你。

我正在使用 Java 6 和 Eclipse (Ganymed)。

0 投票
7 回答
3521 浏览

java - 在 Java 中捕获异常

Java中有某些预定义的异常,如果抛出这些异常,则报告发生了严重的事情,您最好改进您的代码,而不是在catch块中捕获它们(如果我理解正确的话)。但是我仍然发现许多程序中有以下内容:

我认为 IOException 和 FileNotFoundException 正是这种异常,我们不应该在 catch 块中捕获它们。人们为什么这样做?像这样抓住他们会更好吗?无论如何,Java 编译器都会警告任何此类问题。

谢谢你。

0 投票
8 回答
8122 浏览

c# - 在 C# 下,try、throw 和 catch 块对性能的影响有多大

首先,免责声明:我有其他语言的经验,但仍在学习 C# 的精妙之处

关于问题...我正在查看一些代码,它以与我有关的方式使用 try/catch 块。当调用解析例程时,程序员使用以下逻辑而不是返回错误代码

这被调用者捕获,它抛出相同的错误......
被调用者捕获,它抛出相同的错误......
...... 被调用者捕获,它抛出相同的错误...

备份大约 6 个级别。

我认为所有这些 catch/throw 块都会导致性能问题,或者这是 C# 下的合理实现吗?

0 投票
6 回答
2765 浏览

.net - 在 catch 块中返回语句

我见过一些开发人员在 catch 块中使用 return 语句。为什么/何时这是一种有用的技术?

编辑:我实际上刚刚看到使用了 return 关键字。

谢谢

0 投票
3 回答
584 浏览

c# - 关于 catch 块中的 catch 语句排序的问题 - 编译器特定或语言标准?

我目前正在使用 Visual Studio Express C++ 2008,并且对 catch 块排序有一些疑问。不幸的是,我在互联网上找不到答案,所以我向专家提出这些问题。

我注意到除非将 catch (...) 放在 catch 块的末尾,否则编译将失败并出现错误 C2311。例如,以下将编译:

而以下不会:

一个。请问这是在 C++ 语言标准中定义的,还是只是 Microsoft 编译器严格?

湾。C# 和 Java 也有相同的规则吗?

C。顺便说一句,我也尝试过创建一个基类和一个派生类,并将基类的 catch 语句放在派生类的 catch 语句之前。这编译没有问题。请问有没有防止这种做法的语言标准?

0 投票
4 回答
97 浏览

.net - .Net:在开发 CRUD 操作时,您在 try-catch 块的“Catch”部分中的自信方法是什么?

我想知道在.Net 中开发 CRUD 操作(特别是当您使用数据库作为数据源时)时,在 try-catch 块的 catch 部分中是否有任何自信的方法?

好吧,您对以下几行有何看法?

0 投票
2 回答
4843 浏览

android - 在 catch 块中使用时不显示 Toast

我注意到在 catch 块中使用 toast 时不会显示它。有谁知道在捕获异常时如何显示敬酒?一个例子:

0 投票
2 回答
43 浏览

javascript - 你如何根据抛出的值做事?

MDC 说要这样做,但也表示他们认为这只是一个 FireFox 扩展:

实时代码:http: //jsfiddle.net/vQsUX/

我怎样才能做一个适用于所有浏览器的类似事情?