草庐IT

Try-catch

全部标签

swift - "Missing return in a closure expected to return ' .map 中的 SomeType '"错误

我有以下代码:structAInt{varaInt:Int}structADouble{varaDouble:Doublestaticfuncconvert(aInt:AInt)throws->ADouble{returnADouble(aDouble:Double(aInt.aInt))}}structB{funcdoAction(aInts:[AInt])throws->[ADouble]{returnaInts.map{aIntindo{tryADouble.convert(aInt)}catch{print(error)}}//^^^errorhere:Missingretur

html - 有没有办法 catch "Received an unexpected URL from the web process:"

我正在尝试使用WKWebView在Swift中使用UIWebView重写一个objective-c应用程序。该应用程序显示大量本地内容。虽然我可以毫无问题地在WKWebView中显示初始网页。当我单击指向更多本地内容的链接时,出现以下错误:从网络进程收到一个意外的URL:“...”内容使用非标准href来标识本地内容。使用UIWebViewshouldStartLoadWithRequestapi,我能够拦截这个点击链接并以我可以加载适当本地内容的方式重写href。到目前为止,我还不能在WKWebView中找到任何可以让我完成同样事情的东西。我正在使用这些内容,而不是创建它,所以我没有

swift - 用试试?运算符使代码更简洁

我在Swift2中有这段代码可以将文件移动到新的目的地,必要时覆盖:letorigin="...",destination="..."do{tryNSFileManager.defaultManager().removeItemAtPath(destination)//removeexistingfile}catch{}do{tryNSFileManager.defaultManager().moveItemAtPath(origin,toPath:destination)}catch{}为了使代码更简洁,并且由于我不关心抛出的错误,我想到了使用try?运算符,如下所示:letorig

Swift:如果 do return try 失败,则执行 catch

我正在编写一段代码,它将从CoreData中获取一组NSManagedObject。在我的代码中使用docatch语句时,这样做似乎不对,但这是我编写这行代码的最简单方法。在任何其他情况下,当您使用return语句时,您将跳出您所在的当前函数。并且您可以放心,您的函数中的其他代码都不会执行超过>return语句。我想知道这是否同样适用于Swift的docatch范式。classfuncgetAll()->[MMNotification]{letcontext=appDelegate.persistentContainer.viewContextletfetchRequest=NSFet

github 配置了公钥依旧提示git@github.com‘s password: Permission denied, please try again. 的解决办法

最近在给新电脑配置GitHub的ssh时,一切都是按照流程进行github上文档的配置流程进行配置,但是把公钥配置到github后,在对仓库进行操作的时候依旧出现一下提示git@github.com'spassword:Permissiondenied,pleasetryagain.但是按照提示输入github密码也不行。折腾了好久,什么把key删除重新生成,重新配置公钥,什么文件权限,把密钥配置到代理等等手段都试了,依旧不行,给我整的快怀疑人生了。但是同样的操作在gitlab上就是正常的,看来我的操作没啥问题,应该是跟github有关系了。后来使用ssh-Tvgit@github.com去测

ios - 从这里抛出的错误没有得到处理,因为封闭的 catch 在 context.save 中并不详尽

在将xcode更新到版本8.3.2之后,我遇到了问题并尝试。该代码正在运行,但在该更新之后不再运行。它符合以下代码:funcsaveContext()->NSError?{//Itsavingdo{ifcontext==context{trycontext.save()//taskNameTextField.text=nil}}catchleterroras!NSError?{print("errorsavingcoredata:\(error)")returnerror}returnnil}//有人可以帮助我吗? 最佳答案 事实证

ios - Xcode 7 beta 3 的 Swift 2 中的 try/catch 行为不正确?

我遇到了一些使用Xcode7beta3编译的Swift2代码的问题。我有一个类(见下文),它有一个接受函数f的初始化器,它可以抛出异常。如果f没有抛出异常,则应将成员变量(self.result)设置为包装f返回值的枚举实例。如果f确实抛出异常,则应将self.result设置为指示该值不存在的枚举实例。在初始化程序结束时,self.result不应为nil。我检查了f不抛出的情况,行为是正确的。但是,在f确实抛出异常的情况下,self.result在初始化程序结束时为nil(断言被触发)。如果我在调试器中单步执行,我会看到self.result似乎立即被设置,然后闪回为nil。(注意

ios - 如何使用 swift-4 Promises then, done, catch 等 block

我想了解swift-4中的promise。如何使用多个then语句和done、catchblock。在这里,我试图从promise中获取值(value)。但我收到错误。有人可以帮助我理解promise吗?这是我的代码。importUIKitimportPromiseKitstructUser{varfirstname:String?varlastname:String?}structAPIError{varmessage:String?}classViewController:UIViewController{overridefuncviewDidLoad(){super.viewDi

swift - AVAudioSession - 捕获 setMode 和 setCategory 错误

我在一个只执行音频播放的应用程序中使用AVAudioSession。我正在applicationDidFinishLaunchingWithOptions:中设置audioSession的模式和类别。letaudioSession=AVAudioSession.sharedInstance()do{tryaudioSession.setMode(AVAudioSessionModeDefault)tryaudioSession.setCategory(AVAudioSessionCategoryPlayback)}catch{}在我的应用程序的生命周期中,我从未设置过不同的模式或类别,

swift - 如何在嵌套的不可抛出闭包中调用 throw?

我有这个功能:funcgetOptionalConfigurations(_configurations:([String]?,Error?)->Void){//DOSOMETHING}我需要用另一个类似的方式包装它:funcretrieveConfigurations(_completion:@escaping(([String]?)throws->Void))rethrows{getOptionalConfigurations{(configurations:[String]?,error:Error?)indo{trycompletion(configurations)}catc