我在Python中看到了很多关于堆栈跟踪和异常的帖子.但还没找到我需要的东西.
我有一大堆Python 2.7代码可能引发异常.我想抓住它并将一个字符串分配给它的完整描述和导致错误的堆栈跟踪(我们只是在控制台上看到的所有内容).我需要这个字符串将其打印到GUI中的文本框.
像这样的东西:
try:
method_that_can_raise_an_exception(params)
except Exception as e:
print_to_textbox(complete_exception_description(e))
Run Code Online (Sandbox Code Playgroud)
问题是:功能是什么complete_exception_description?
var connection = ConnectionFactory.GetConnection(
ConfigurationManager.ConnectionStrings["Test"]
.ConnectionString, DataBaseProvider);
Run Code Online (Sandbox Code Playgroud)
这是我的App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是当我的项目运行时,这是我的错误:
你调用的对象是空的.
我想编写一个常见的错误处理程序,它将捕获在任何代码实例上故意抛出的自定义错误.
当我throw new Error('sample')在下面的代码中做了
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
Run Code Online (Sandbox Code Playgroud)
日志在Firefox中显示,Error: [object Object]我无法解析该对象.
对于第二个throw,日志显示为:Error: hehe
而当我这样做的时候
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
Run Code Online (Sandbox Code Playgroud)
控制台显示为:Object { hehe="haha"}其中我能够访问错误属性.
有什么不同?
是否在代码中看到了差异?像字符串一样只是作为字符串和对象传递给对象,但语法会有所不同吗?
我没有探索过抛出错误对象......我只是抛出了字符串.
还有除上述两种方法之外的其他方法吗?
有时,在不可重现的情况下,我的WPF应用程序崩溃而没有任何消息.应用程序立即关闭.
实现全局Try/Catch块的最佳位置在哪里.至少我必须实现一个消息框:"抱歉给您带来不便......"
异常处理(EH)似乎是当前的标准,并且通过搜索网络,我找不到任何试图改进或替换它的新颖想法或方法(好吧,存在一些变化,但没有新颖的).
虽然大多数人似乎忽略它或只是接受它,但EH 有一些巨大的缺点:代码看不到异常,它会创建许多可能的退出点.乔尔在软件上写了一篇关于它的文章.比较goto完美,它让我再次思考EH.
我尽量避免使用EH,只使用返回值,回调或任何适合目的的东西.但是当你必须编写可靠的代码时,你现在就无法忽略EH:它从new可能抛出异常开始,而不是仅仅返回0(就像过去一样).这使得任何C++代码行都容易受到异常的影响.然后C++基础代码中的更多地方抛出异常...... std lib执行它,依此类推.
这感觉就像走在摇摇欲坠的地面上.所以,现在我们被迫关注异常!
但它很难,真的很难.你必须学会编写异常安全代码,即使你有一些经验,它仍然需要仔细检查任何一行代码是安全的!或者你开始在任何地方放置try/catch块,这会使代码混乱,直到它达到不可读状态.
EH取代了旧的干净确定性方法(返回值..),它只有一些但可以理解且易于解决的缺点,在您的代码中创建许多可能的退出点的方法,以及如果您开始编写捕获异常的代码(您是什么的)在某些时候被迫做某事),然后它甚至通过你的代码创建了许多路径(catch块中的代码,考虑一个服务器程序,你需要除了std :: cerr之外的日志工具..).EH有优势,但这不是重点.
我的实际问题:
运行时:
public class WhatTheShoot {
public static void main(String args[]){
try {
throw null;
} catch (Exception e){
System.out.println(e instanceof NullPointerException);
System.out.println(e instanceof FileNotFoundException);
}
}
}
Run Code Online (Sandbox Code Playgroud)
回应是:
true
false
Run Code Online (Sandbox Code Playgroud)
这对我来说相当惊人.我原本以为这会造成编译时错误.
为什么我可以在Java中抛出null,为什么要将它转换为NullPointerException呢?
(实际上,我不知道它是否是"向上",因为我扔的是null)
除了一个非常愚蠢的面试问题(请不要在面试中问这个)我看不出任何理由throw null.也许你想被解雇,但那是......我的意思是,为什么还有人throw null呢?
有趣的事实 IntelliJ IDEA 12告诉我,我的行e instanceof NullPointerException总是假的.这根本不是真的.
我想编写trycatch代码来处理从网上下载时的错误.
url <- c(
"http://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html",
"http://en.wikipedia.org/wiki/Xz")
y <- mapply(readLines, con=url)
Run Code Online (Sandbox Code Playgroud)
这两个语句成功运行.下面,我创建一个不存在的Web地址:
url <- c("xxxxx", "http://en.wikipedia.org/wiki/Xz")
Run Code Online (Sandbox Code Playgroud)
url[1]不存在.如何编写trycatch循环(函数)以便:
我经常看到有关如何except: pass阻止使用的其他Stack Overflow问题的评论.为什么这么糟糕?有时我只是不在乎错误是什么,我想继续使用代码.
try:
something
except:
pass
Run Code Online (Sandbox Code Playgroud)
为什么使用except: pass块坏?是什么让它变坏?是因为我pass出错了还是我except有错误?
python error-handling exception-handling exception try-catch
我写了这样的PHP代码
$site="http://www.google.com";
$content = file_get_content($site);
echo $content;
Run Code Online (Sandbox Code Playgroud)
但当我删除"http://"时,$site我收到以下警告:
警告:file_get_contents(www.google.com)[function.file-get-contents]:无法打开流:
我尝试过try,catch但它没有用.
以下处理方式有什么区别InterruptedException?最好的方法是什么?
try{
//...
} catch(InterruptedException e) {
Thread.currentThread().interrupt();
}
Run Code Online (Sandbox Code Playgroud)
要么
try{
//...
} catch(InterruptedException e) {
throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)
编辑:我也想知道这两个使用的场景.
java multithreading exception-handling interrupted-exception
exception ×3
c# ×2
java ×2
python ×2
try-catch ×2
.net ×1
ado.net ×1
app-config ×1
c++ ×1
function ×1
javascript ×1
object ×1
php ×1
python-2.7 ×1
r ×1
r-faq ×1
stack-trace ×1
throw ×1
warnings ×1
wpf ×1