Swift学习_自定义Log&异常捕捉

Swift

1.自定义Log

// 1.获取打印所在的文件(例如:ViewController.swift)
// lastPathComponent:获取最后一个路径
let file = (#file as NSString).lastPathComponent
    
// 2.获取打印所在的方法(例如:viewDidLoad())
let funcName = #function
    
// 3.获取打印所在行数(例如22)
let lineNum = #line

要想在Swift中使用DEBUG,需要在Build Settings中设置一些东西,如下图:


Swift学习_自定义Log&异常捕捉_第1张图片
设置DEBUG
将以下代码写在AppDelegate.swift中,写成全局函数,就可以在其他地方调用了
// T是动态类型
func SHLog(message: T,file:String = #file,funcName:String = #function,lineNum:Int = #line){
    
    #if DEBUG       // Build Settings --> swift flags --> 在debug后点击+ --> -D 自己起的名字
    
    let fileName = (file as NSString).lastPathComponent
    
    print("\(fileName):(第\(lineNum)行) - \(message)")
    //        print("\(fileName):[\(funcName)](\(lineNum)) - \(message)")   // 会打印函数名
    
    #endif
}

2.Swift中异常处理

如果在调用系统某一个方法时,该方法最后有一个throws,说明该方法会抛出异常,那么需要对该异常进行处理

Swift中提供了三种处理异常的方式
1.try方式 程序员手动捕捉异常
let pattern = "abc"
do{
    let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive)
}catch{
    catch:捕捉异常
    error:异常的对象
    print(error)
}
2.try?方式 系统帮助我们处理异常,如果该方法出现了异常,则该方法返回nil;如果没有异常,则返回对应的对象
let pattern = "abc"
guard let regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive) else{
    return
}
3.try!方式(不建议,非常危险) 直接告诉系统,该方法没有异常。注意:如果该方法出现了异常,那么程序会报错(崩溃)
let pattern = "abc"
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)

}


代码已上传至git:
--> 传送门:Swift_基本语法

附录

查看完整专栏《Swift学习》

有问题欢迎指正以及相互探讨 —— CoderSun

你可能感兴趣的:(Swift学习_自定义Log&异常捕捉)