2015-11-14 46 views
-1

我收到上述错误,并试图通过在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 { 

    } 

} 
+0

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

回答

0

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

您没有标明可与try

我不叫哪你在那里投丢了电话,但找到一个并在其前面放置try的人。如果您分配一个值,尽量需求走就=

编辑

只是看着在文档的右侧,看起来它是你的

let input = AVCaptureDeviceInput(device: backCamera) 

语句可以抛出。把一试=这样

let input = try AVCaptureDeviceInput(device: backCamera) 

后,然后你就可以print(error)里面的你catch看到任何potentiel错误

0

你正在写SWIFT CODE。不是Java或C++代码。例外的工作方式不同。您需要尝试使用可能抛出的单个调用,而不是用于大块代码。

我建议您下载免费的Swift 2书籍,并了解Swift 2中的异常工作方式。与其他语言的相似性只是肤浅的。

相关问题