【问题标题】:Error: 'Call can throw but is not marked with try and error not handled'错误:'调用可以抛出但未标记尝试并且错误未处理'
【发布时间】:2016-02-16 03:36:53
【问题描述】:

我收到了上述错误,并试图通过添加一个 do / catch 块来修改它。由于某种原因,错误不会消失。有谁知道为什么会这样?

 override func viewDidAppear(animated: Bool) {
    super.viewWillAppear(animated)

    captureSession = AVCaptureSession()
    captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080

    let backCamera = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)

    do {

        let input = AVCaptureDeviceInput(device: backCamera)

        captureSession?.addInput(input)

        stillImageOutput = AVCaptureStillImageOutput()
        stillImageOutput?.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]

        if (captureSession?.canAddOutput(stillImageOutput) != nil){
            captureSession?.addOutput(stillImageOutput)

            previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
            previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect
            previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.Portrait
            oview.layer.addSublayer(previewLayer!)
            captureSession?.startRunning()

        }

    } catch {

    }

}

【问题讨论】:

  • 而不是 do catch 使用 try catch 和 catch 应该像 catch (NSException *ex) {

标签: ios swift error-handling avfoundation do-catch


【解决方案1】:

线索在错误描述中:Error: 'Call can throw but is not marked with try and error not handled'

你没有用try标记可以抛出的调用

我不知道你在那里有哪个调用,但找到那个调用并将try 放在它前面。如果是赋值,try需要走右边=

编辑

刚刚看了下文档,好像是你的

let input = AVCaptureDeviceInput(device: backCamera)

可以抛出的语句。像这样在=之后试一试

let input = try AVCaptureDeviceInput(device: backCamera)

然后您可以在您的catchprint(error) 查看任何潜在错误

【讨论】:

    【解决方案2】:

    您正在编写 Swift 代码。不是 Java 或 C++ 代码。例外的工作方式不同。您需要将 try 用于可以抛出的单个调用,而不是用于一大块代码。

    我建议您下载免费的 Swift 2 书籍并了解异常在 Swift 2 中的工作原理。与其他语言的相似之处只是肤浅的。

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多