[英]Exception not throwing?
我的代码类似于以下内容:
try{
func1();
}
catch(Exception e){
/Do something
}
static func1(){
func2();
}
static func2(){
//Exception thrown here
System.IO.StreamReader file = new System.IO.StreamReader(filePath);
}
当func2()中的代码行引发异常时,catch子句中没有任何通知。 我没有明确抛出任何东西,只是有一些静态的常规函数声明-任何地方都不会出现“ throw”。
为什么异常不向上传播到catch语句?
不,代码很好。 您的真实代码中有一些您没有显示给我们。 该异常传播良好:
using System;
static class Program {
static void Main() {
try{
func1();
} catch(Exception e) {
// works fine: FileNotFoundException
Console.WriteLine(e);
}
}
static void func1(){
func2();
}
static void func2() {
string filePath = "doesnot.exist";
System.IO.StreamReader file = new System.IO.StreamReader(filePath);
}
}
考生:
try
东西都值得怀疑-高音检查一下 异常将“冒泡”,直到被捕获或使您的应用崩溃。
最好的选择是使用调试器。 确保已将其设置为在HANDLED异常上停止(调试/异常/选中“公共语言运行时异常”上的“引发”框)。
现在运行您的代码。 如果func2引发异常-您的代码将中断; 不管是否处理。 您可以单步执行代码,然后查看如何处理它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.