草庐IT

do-catch

全部标签

ios - AVAudioEngine.start() 中的崩溃,即使它被包裹在 do/catch 中

我有以下代码来(重新)启动连接到AVAudioEngineConfigurationChangeNotification的AVAudioEngine:do{tryself.engine.start()}catch{DDLogError("couldnotstartsoundengine")self.soundEnabled=falsereturn}self.engine定义为privateletengine=AVAudioEngine()但是,我经常通过Crashlytics收到崩溃报告FatalException:com.apple.coreaudio.avfaudioerror56

performance - Swift Dictionary 即使经过优化也很慢 : doing uncessary retain/release?

以下代码将简单值持有者映射到bool值,在Java中的运行速度比Swift2快20倍以上-XCode7beta3、“Fastest,AggressiveOptimizations[-Ofast]”和“Fast,WholeModuleOptimizations”已启用.我可以在Java中获得超过280M的查找/秒,但在Swift中只有大约10M。当我在Instruments中查看它时,我发现大部分时间都在进行一对与map查找相关的保留/释放调用。任何关于为什么会发生这种情况或解决方法的建议将不胜感激。代码的结构是我的真实代码的简化版本,它有一个更复杂的键类并且还存储了其他类型(尽管Boo

ios - Swift Eureka 表单 : how do you limit the number of rows in a multivalued section?

我正在使用Eureka使用Swift在iOS中构建表单。我创建了一个多值部分,例如:form+++MultivaluedSection(multivaluedOptions:[.Insert,.Delete],header:"MyHeader",footer:"Myfooter"){sectioninsection.tag="mySectionTag"section.addButtonProvider={_inreturnButtonRow(){rowinrow.title="Addrow"}}section.multivaluedRowToInsertAt={indexinretur

swift 2 : Try/Catch a non-throwing function

我正在重构一个Obj-c类,其中在removeObserver:周围有一个@try/@catchblock。在swift中做同样的事情会触发警告,因为removeObserver可能会失败(当没有观察者时)但它不会抛出任何错误。知道如何实现相同的行为吗?编辑:我的代码:try{self.removeObserver(self,forKeyPath:"LineDisplayChanged")} 最佳答案 您调用的funcremoveObserver(_anObserver:NSObject,forKeyPathkeyPath:Stri

exception - Swift 中的 try-catch 异常

这个问题在这里已经有了答案:Error-HandlinginSwift-Language(13个答案)关闭8年前。是否可以在Swift中捕获异常?给定以下代码:NSException.raise(NSRangeException,format:"Nowyou'vegonetoofar!",arguments:CVaListPointer(fromUnsafePointer:UnsafePointer()))是否可以防止异常导致整个程序崩溃?也就是说,在Swift中Objective-C中的以下内容是什么:@try{[NSExceptionraise:NSRangeExceptionfo

ios - Swift 2.0 中的 do { } catch 不会处理从这里抛出的错误

在我更新swift2.0后,do{try}catch出现错误,如下图所示。我该如何解决这个问题?谢谢! 最佳答案 错误告诉您封闭的catch并不详尽。这是因为自动生成的catchblock只捕获NSError对象,编译器无法判断是否会抛出其他一些ErrorType.如果您确定不会抛出其他错误,您可以添加另一个默认的catchblock:do{objects=trymanagedObjectContext?.executeFetchRequest(request)}catchleterror1asNSError{error=error

C#:多个 catch 子句

考虑以下几点:try{FileStreamfileStream=newFileStream("C:\files\file1.txt",FileMode.Append);}catch(DirectoryNotFoundExceptione){MessageBox.Show("Directorynotfound."+e.Message);}catch(IOExceptione){MessageBox.Show("OtherIOError."+e.Message);}catch(Exceptione){MessageBox.Show("OtherError."+e.Message);}Dir

C# 嵌套 Try Catch 语句或方法?

简单的最佳实践问题。你应该嵌套trycatch语句还是只使用方法。例如,如果您有一个打开文件的方法确实有效并关闭了文件,您将在trycatch之外进行打开和关闭,或者更确切地说,在finallyblock中进行关闭。现在,如果您的open方法失败,该方法会断言吗?那么你应该将它包装在一个trycatchblock中,还是应该从另一个方法调用,而这个方法又作为一个trycatchblock? 最佳答案 在打开文件的方法的上下文中,我会使用using语句而不是trycatch。using语句确保在发生异常时调用Dispose。using

c# - 为什么 main() 中的 try-catch 不好?

有人可以向我解释为什么在main()方法中使用try-catch来捕获任何未处理的异常被认为是不合适的吗?[STAThread]staticvoidMain(){try{Application.Run(newForm1());}catch(Exceptione){MessageBox.Show("Generalerror:"+e.ToString());}}我知道这是不好的做法,但不确定为什么。 最佳答案 我不认为它一定是不好的做法。然而,有一些注意事项......我相信无论谁称此为“不良做法”,其目的都是为了强化这样一种观念,即您

dependency-injection - 依赖注入(inject)框架 : Why do I care?

我正在阅读InjectionbyHand和Ninjection(以及WhyuseNinject)。我遇到了两个困惑:手动注入(inject)技术我已经很熟悉了,但我对Ninjection不熟悉,因此不确定完整的程序如何工作。也许提供一个完整的程序会有所帮助,而不是像该页面上所做的那样,将程序分解成多个部分我仍然不明白这如何让事情变得更简单。我想我错过了一些重要的东西。如果您正在创建一组注入(inject)然后同时在两个大组之间切换(这对于模拟等很有用),我可以看出注入(inject)框架会有多大帮助,但我认为还有更多比起那个来说。但我不确定是什么。或者,也许我只需要更多例子来说明为什么