Tag: exception处理

仅针对某些exception类型中断

我知道exception处理是一件非常重要的事情,我们在所有项目中都这样做。 主要原因是记录客户发生的错误。 这工作正常,根本不是问题。 但是,当我仍然使用Visual Studio编写和运行应用程序时,我根本不需要任何exception处理。 我希望调试器停在应用程序崩溃的行,而不是我写的一些错误记录器。 而且我不想用throw转发exception! 但我仍然在寻找一种简单的方法。 我可以在try / catch周围编写无数#if Debug或#if Release语句,但这不是我想要做的。 有没有其他方法来处理这个问题?

该进程无法访问该文件,因为它正由另一个进程使用(文件已创建但不包含任何内容)

using System.IO; class test { public static void Main() { string path=@”c:\mytext.txt”; if(File.Exists(path)) { File.Delete(path); } FileStream fs=new FileStream(path,FileMode.OpenOrCreate); StreamWriter str=new StreamWriter(fs); str.BaseStream.Seek(0,SeekOrigin.End); str.Write(“mytext.txt…………………….”); str.WriteLine(DateTime.Now.ToLongTimeString()+” “+DateTime.Now.ToLongDateString()); string addtext=”this line is added”+Environment.NewLine; File.AppendAllText(path,addtext); //Exception occurrs ?????????? string readtext=File.ReadAllText(path); Console.WriteLine(readtext); str.Flush(); str.Close(); Console.ReadKey(); //System.IO.IOException: The process cannot access the file ‘c:\mytext.txt’ because it is //being used by […]

如何在unit testing中模拟抛出exception?

如何模拟C#unit testing中抛出的exception? 我希望能够100%覆盖我的代码,但我无法使用可能发生的exception来测试代码。 例如,我无法模拟可能发生的功率损失。 例如: public void MyMethod() { try { … } catch(OutOfMemoryException e) { … } catch(RandomErrorFromDatabaseLayer e) { … } } 我希望能够模拟此方法中的任何类型的exception,并且应该被捕获。 有没有图书馆可以帮助我解决这个问题? 编辑1:完成我向Moq询问的任何帮助?

netTCP绑定Soap安全协商失败

我正在写一个WCF服务需要模拟和会话。 我尝试在我的本地计算机上调用它时没关系,但是在远程计算机上它总是因为这样的错误而失败: 安全支持提供程序接口(SSPI)身份validation失败。 服务器可能未在具有标识“host / hostname”的帐户中运行。 如果服务器在服务帐户(例如,网络服务)中运行,请将该帐户的ServicePrincipalName指定为服务器的EndpointAddress中的标识。 如果服务器在用户帐户中运行,请将该帐户的UserPrincipalName指定为服务器的EndpointAddress中的标识。 如果我提供了upn,它会抛出一个身份失败的exception。 这是我的配置: 服务器配置(APP): 客户端配置: 任何帮助将不胜感激。

C#:Visual Studio 2008是否有工具显示一段代码可以引发哪些exception?

例如,如果我打开一个文件,我知道可能发生FileNotFoundException,或者如果我将String转换为double,则可能发生FormatException。 显然,如果一个方法同时做到,两者都可以引发。 有没有办法快速查看方法引发的所有可能的exception? 自己跟踪它似乎容易出错。

RIA服务中的exception处理

如您所知,使用标准WCF服务的FaultException来建议处理exception以隐藏exception详细信息。 这没关系,但我遇到了WCF Ria服务的问题。 我想从域服务抛出exception,客户端将处理该exception。 我想避免泄露exception的敏感信息,如堆栈跟踪,方法名称等。如果它是标准的WCF服务,我会使用FaultExceptionexception,但在Ria服务中,它不起作用。 无论我从域服务抛出什么样的exception,客户端总是会得到DomainOperationException。 有没有办法可以从域服务向Silverlight客户端抛出FaultException(不透露实际的exception细节)? 例如,我有一个登录窗口。 当用户点击登录按钮时,应该有几个validation失败,例如: 用户名或密码无效 用户帐户已被锁定 该帐户未激活 等等 我希望每个可能发生的错误都有错误类型。 客户端应该检查出错的地方并相应地显示错误消息。 我禁用了customErrors但它没有帮助。 任何帮助,将不胜感激。 谢谢

在c#中检查网络驱动器是否存在超时

我创建了一个Windows服务,在服务器的硬盘驱动器(安装服务的位置)之间移动文件到服务器中映射的网络驱动器。 我在创建解决方案时遇到的一个问题是网络问题。 如何在检查时设置超时时检查网络驱动器是否存在? 如果它超时,我捕获exception并在X分钟内重试并将项目留在队列中。 谢谢!

exception与ad-hoc类型。 什么可能会倒下?

我在阅读MVC 3项目时正在阅读企业应用程序的书籍开发。 我目前正在决定如何处理exception。 以前我会让exception在堆栈中冒泡,然后在最高层处理它。 本书建议在域模型中创建一个ad-hoc类并返回它。 例如 public sealed class MissingCustomer: Customer { } // On method failure return new MissingCustomer(); 我可以看到这个想法,但我正在努力certificate需要这个。 代码明智我同意返回一个新的缺失客户更简洁,而不是抛出exception。 您如何看待这种方法并且您遇到过哪种情况会产生重大影响? 如果我们假设客户必须始终存在,那么抛出一个例外说“嘿,客户应该总是存在而且由于某种原因它不存在,所以我将通知用户说某些特殊情况发生了”是有意义的。 另一方面,我可以假设客户可能被另一个人移除,因此我需要优雅地处理这个问题。 无论哪种方式,我认为我们需要一个MissingCustomer类或一个MissingCustomerException,因为客户是一个非常常见的实体,在整个系统中使用。 如果视图模型需要一个客户并且我们返回一个MissingCustomer – 它很好,因为inheritance将使这个工作。 例如,我有一个返回OrderViewModel的action方法。 此操作方法需要引用客户。 Customer customer = CustomerRepository.Find(10); if(customer == null) { return new MissingCustomer(); } 这将会失败因为action方法将返回OrderViewModel类型的视图模型,所以现在我更倾向于使用exception而不是MissingCustomer对象。 编辑 此外,MissingCustomer类型对象将从Customer类型inheritance属性。 我们唯一不需要这些属性,就是通知用户无法找到客户。 谢谢

用于exception处理和报告的SmartAssembly的替代方案?

我很高兴SmartAssembly解决方案用于exception处理,但我在Red Gate论坛上报告了一个问题,但尚未解决。 SA有哪些替代方案? 我的意思是具有类似function(托管您的报告,发送电子邮件等)?

我在哪里处理异步exception?

请考虑以下代码: class Foo { // boring parts omitted private TcpClient socket; public void Connect(){ socket.BeginConnect(Host, Port, new AsyncCallback(cbConnect), quux); } private void cbConnect(IAsyncResult result){ // blah } } 如果socket在BeginConnect返回之后并且在调用BeginConnect之前抛出exception,它会弹出哪里? 它甚至被允许扔在后台吗?