草庐IT

Try-with-resources

全部标签

c# - 为什么要将 try/catch block 置于循环之外?

这是Practice&Patterns团队的CodeReview指南。http://msdn.microsoft.com/zh-cn/library/ms998574#scalenetchapt13_topic7(链接会自动导航到异常部分。)他们说在处理异常时应该将try/catchblock放在循环之外,我想知道为什么? 最佳答案 因为try...catchblock的底层实现增加了生成代码的开销,并且将这些开销放在紧密循环中从性能角度来看并不是一个好主意。从技术上讲,如果循环的所有迭代都是“相等的”,并且一旦发生异常循环应该立即

c# - "The request failed with an empty response"调用网络服务时

当从aspx页面调用托管在服务器中的网络服务时,我收到类似“请求失败,响应为空”的错误。我页面中的代码try{HttpWebRequestrequest1=(HttpWebRequest)WebRequest.Create("https://login.erp.com/rodeprovisioning/provisioning.asmx");request1.Accept="text/xml";request1.Method="POST";WebProxyproxyObject=newSystem.Net.WebProxy("http://10.0.0.1:8080/",true);r

c# - 在 C# 中嵌套 2 个 try catch 语句是不好的做法吗?

下面的代码是不好的做法吗?try//TryOverallOperation{try//Trysection1ofoperation{}catch(exceptionex){//handleexceptioncode//throwtheexception}catch(exceptionex){//sendsoapexceptionbacktoSOAPclient.}我知道,从程序审查的角度来看,其他开发人员看到2次尝试直接嵌套时可能想知道为什么,但这完全是禁忌,还是现在已被接受?谢谢大家,我同意你们关于重构的所有意见,将为子功能创建一个单独的方法,该方法变得非常长。我对所有选择它的人印象

c# - Try-Catch 表达流畅

此LINQ查询表达式因Win32Exception“访问被拒绝”而失败:Process.GetProcesses().Select(p=>p.MainModule.FileName)这失败并出现IOException“设备未准备好”:DriveInfo.GetDrives().Select(d=>d.VolumeLabel)过滤掉不可访问的对象并避免异常的最佳方法是什么? 最佳答案 写一个扩展方法!voidMain(){varvolumeLabels=DriveInfo.GetDrives().SelectSafe(dr=>dr.V

c# - 我是否应该始终将我的代码包装在 try...catch block 中?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whentousetry/catchblocks?Mainmethodcodeentirelyinsidetry/catch:Isitbadpractice?WhentouseTryCatchblocks异常可能发生在任何地方,所以这让我思考:我是否应该始终将我的代码包装在try..catchblock中?这是针对C#的。(我可能遗漏了一些基本的东西,因为我还是个新手)编辑:看来这确实不是一个非常聪明的问题。我们在学校学到的唯一一件事就是使用try...catch来防止崩溃。对于异常,我们所做的是显示一个Me

c# - 迭代器 block 在 IL 中生成 try-fault

在尝试使用迭代器block后,我注意到生成的IL代码不是我期望的那样。生成try-faultblock而不是try-finallyblock,这是我从未见过的。我注意到编译器不允许我在“手写”C#中使用fault关键字。两者有区别吗?C#代码:staticIEnumerableReadAllLines(stringfileName){using(varfile=System.IO.File.OpenText(fileName)){strings;while((s=file.ReadLine())!=null){yieldreturns;}}}MSIL代码:.methodprivateh

c# - 如何从嵌套的 try-catch block 中重新抛出先前的异常? (C#)

我有尝试进行类型转换的代码。如果失败,我想尝试其他方法,如果同样失败,则重新抛出第一次转换尝试的原始异常。问题是我知道重新抛出的唯一方法是将“throw;”放在catchblock的末尾。当我只希望从另一个catchblock中重新抛出时会发生什么?try{valueFromData=Convert.ChangeType(valueFromData,pi.PropertyType);}catch(InvalidCastExceptione){Debug.WriteLine(String.Concat("Info-Directconversionfailed.Attemptingtoco

c# - WCF 反序列化中的 XmlException : "Name cannot begin with ' <'" - in automatic property backing fields

我今天开始在WCF反序列化中遇到错误-代码一直没有改变并且工作了几个月。问题是我正在获取运行时XmlException说“名称不能以‘k_BackingField,这是XmlException的来源。我在网上看到了其他一些引用资料,其中人们接受的解决方案是“我更改了我的代码以不使用自动属性”,这对我来说是不能接受的,因为我需要更改100个对象,(其中有1000个属性)。此外,当我上周运行这段相同的代码时,它运行良好,似乎并没有影响所有序列化的DTO,只有一些。更令人沮丧的是,它似乎有点断断续续。今天早上偶尔会抛出异常...!问题;为什么在未更改的代码和未更改的框架源中突然出现此问题?如

c# - Entity Framework 核心 : Update relation with Id only without extra call

我正在尝试弄清楚如何处理thisdoc:中描述的“单一导航属性案例”假设我们有2个模型。classSchool{publicICollectionChildrens{get;set;}...}和classChild{publicintId{get;set;}...}因此它是按照约定创建的多对一关系,Child中没有显式外键。所以问题是如果我们有Child实例并且知道School.Id有没有办法更新这个关系而不需要额外调用数据库来获取School实例。 最佳答案 SothequestionisifwehaveChildinstance

c# - 什么时候用什么时候不用 Try Catch Finally

我正在.net3.5中创建asp.netweb应用程序,我想知道何时使用以及何时不使用TryCatchFinallyblock?特别是,我的大部分trycatch都围绕着执行存储过程和填充文本字段或GridView?当您执行存储过程并填充数据显示控件时,您会EVERYTIME使用TryCatch吗?我的代码块通常是这样的:protectedvoidAddNewRecord(){try{//executestoredproc//populategridviewcontrolsortextboxes}catch(Exceptionex){//displayamessageboxtouser