草庐IT

try-Catch

全部标签

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。(注意

[RS] Timeline踩坑(2):The object has been destroyed but you are still trying to access it

记录环境Unity2021.3.4f1Timeline1.6.4问题描述  首先说明下,这个报错不是Unity直接抛出的,它就是我们写的轨道代码里,访问了一个已经被Destroy的对象。但是,导致这个报错出现,不是因为我们用法不合理!!!  我们项目在切换情景的时候,会将当前情景的资源“全部卸载”,其中就包含TML及其控制的角色。  我们在主城切换到副本的时候,爆出来这个MissingReferenceException的问题。检查后发现项目中资源释放的逻辑没有问题,轨道里的代码也符合制作规范。统一资源释放流程(部分):1.先停止所有正在播放的TML2.释放/销毁资源,这里包含TML、角色等(

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

ios - Xcode 6 swift : Trying to reset IBOutlets in AppDelegate

使用带有Swift的Xcode6.0.1我在Storyboard中创建了一个标签并将其连接到ViewController.swift导致:@IBOutletweakvarmyLabel:UILabel!每当我的应用程序进入前台时,我想将myLabel.text重置为某个字符串,比如“HelloWorld”。以前在Objective-C中,我可以像这样在AppDelegate中这样做:-(void)applicationWillEnterForeground:(UIApplication*)application{self.viewController.myLabel.text=@"He

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

swift - Xcode 10.2 将多个目标转换为 Swift 5 : Tries to compile some classes that are not part of target

我有一个包含多个目标的iOSSwift项目。将第一个目标转换为Swift5很容易。将第二个目标转换为Swift5,Xcode10.2尝试编译显然仅存在于第一个目标中的文件并失败(因为它没有编译第一个目标的所有文件并提示未解析的标识符)。我该怎么做才能让Xcode仅编译那些在转换为Swift5时属于目标的文件?如何将我的项目转换为Swift5?清理Build文件夹并重新启动Xcode10.2没有帮助。 最佳答案 我刚刚经历了这个过程,并且能够从迁移指南最后一句话的提示中找出一个相当简单的解决方案https://swift.org/mi

try catch捕获异常并打印报错行号等信息

在我们系统中,如果某一行代码报错了,我们打印日志的时候却不知道具体报错行号,报错信息等等。如何才能打印报错行号呢?我们拿到Exception对象后,首先要拿到错误的堆栈信息,可以通过下面方法拿到:StackTraceElementstackTraceElement=e.getStackTrace()[0];拿到堆栈信息后,那么我们就可以获取具体的报错信息了.//报错全路径类名stackTraceElement.getClassName();//报错方法stackTraceElement.getMethodName();//报错行号stackTraceElement.getLineNumber(

An HTTP error occurred when trying to retrieve this URL.(解决方案)

在通过vscode向服务器安装pytorch时,切换了清华源之后,遇到了下面的错误:AnHTTPerroroccurredwhentryingtoretrievethisURL.HTTPerrorsareoftenintermittent,andasimpleretrywillgetyouonyourway.遇到此错误的时添加的清华源如下:condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig--addchannelshttps://mirrors.tuna.tsin