Skip to content

Latest commit

 

History

History
 
 

ch12

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

要点

■ 从带有错误值的函数中提前返回是指明错误发生的好方法,但它阻止了之后函数中的清理代码的运行。
■ 可以使用defer关键字在需要清理的代码之后立即调用清理函数。这将清理代码设置为,在当前函数退出时,无论是否存在错误都将运行。
■ 你可以调用内置的panic函数来引发程序panic。
■ 除非调用内置的recover函数,否则panic的程序将崩溃并显示日志信息。
■ 你可以将任何值作为参数传递给panic。该值将被转换为字符串并作为日志信息的一部分打印出来。
■ panic日志信息包括堆栈跟踪,即所有活动的函数调用列表,这些对于调试非常有用。
■ 当程序陷入panic时,仍然会执行任何延迟的函数调用,从而允许在崩溃之前执行清理代码。
■ 延迟的函数也可以调用内置的recover函数,这将使程序恢复正常运行。
■ 如果在没有panic时调用recover,它只返回nil。
■ 如果在panic期间调用recover,它将返回传递给panic的值。
■ 大多数程序只有在出现意料之外的错误时才会出现panic。你应该考虑程序可能遇到的所有错误(例如文件丢失或格式错误的数据),并使用error值来处理这些错误。