🌟 스위프트에서 에러 처리
enum FileTrasferError: Error {
	case noConnection
   	case lowBandwidth
   	case fileNotFound
}
네트워크 연결이 없거나, 네트워크 속도가 너무 느리거나, 전송할 파일을 찾지 못한다거나 하는 에러는 다음과 같이 Error 프로토콜을 따르는 열거형으로 표현func transferFile() throws -> Bool {
	// 
}
throws 키워드 사용 throws 키워드는 반환 타입 앞에 위치var connection = true
var connectionSpeed = 30.00
var fileFound = false
enum FileTransferError: Error {
	case noConnection
   	case lowBandwidth
   	case fileNotFound
}
func fileTransfer() throws {
	guard connection else {
    		throw FileTransferError.noConnection
    	}
    	guard connectionSpeed > 30 else {
    		throw FileTransferError.lowBandwidth
    	}
    	guard fileFound else {
    		throw FileTransferError.fileNotFound
    	}
}
throw 와 guard 구문을 이용한다.guard 구문의 조건문이 false 경우에는 else 절에 해당하는 error throwing이 발생한다.func checkSendingFile() -> String {
	do {
    		try fileTransfer()
 	} catch FileTransferError.noConnection {
    			return "No Network Connection"
    	} catch FileTransferError.lowBandwidth {
    			return "File Transfer Speed is Too Low"
    	} catch FileTransferError.fileNotFound {
    		return "File Not Found"
    	} catch {
    		return "Unknown Error"
    	}
    	return "Transfer Success"
}
do-catch 구문과 사용do 내에서 fileTransfer() 함수가 에러를 던질경우, catch 구문이 각 에러에 해당되는 문자열을 반환. 아무런 에러가 없을 경우 전송 성공 문자열을 반환.catch 는 'catch all' 구문으로, 패턴매칭이 이뤄지지 않은 모든 에러에 대해 "Unknown Error" 를 반환. do-catch 구문은 가능한 모든 에러에 대해 처리할 수 있도록 구성해야 함.