
Xử lý lỗi
Error type, error wrapping, errors.Is, errors.As, custom errors, panic/recover
1Interface nào được dùng để biểu diễn lỗi trong Go?
Interface nào được dùng để biểu diễn lỗi trong Go?
Câu trả lời
Interface error là interface được định nghĩa sẵn trong Go để biểu diễn các tình trạng lỗi. Nó chứa một phương thức duy nhất Error() trả về một chuỗi mô tả lỗi. Giá trị nil biểu thị không có lỗi. Đây là interface quy ước được sử dụng bởi tất cả các package của thư viện chuẩn và bởi các lập trình viên Go để báo hiệu và lan truyền lỗi.
2Làm thế nào để tạo một lỗi đơn giản với thông điệp tĩnh trong Go?
Làm thế nào để tạo một lỗi đơn giản với thông điệp tĩnh trong Go?
Câu trả lời
Hàm errors.New() từ package errors tạo một lỗi đơn giản với thông điệp tĩnh. Nó trả về một kiểu error triển khai interface error với thông điệp được cung cấp. Cách tiếp cận này được khuyến nghị để tạo các lỗi sentinel (các lỗi định nghĩa sẵn như os.ErrNotExist) hoặc các lỗi đơn giản không có ngữ cảnh động. Đối với thông điệp động, hãy dùng fmt.Errorf().
3Hàm nào cho phép tạo một lỗi với thông điệp được định dạng động?
Hàm nào cho phép tạo một lỗi với thông điệp được định dạng động?
Câu trả lời
Hàm fmt.Errorf() tạo một lỗi với thông điệp được định dạng động bằng cách dùng các động từ định dạng (như %s, %d, %v). Nó cũng hỗ trợ động từ đặc biệt %w để bao bọc một lỗi hiện có, qua đó bảo toàn chuỗi lỗi để kiểm tra về sau. Đây là phương pháp được khuyến nghị để thêm ngữ cảnh vào lỗi trong khi vẫn giữ lỗi gốc.
Động từ định dạng nào cho phép bao bọc một lỗi với fmt.Errorf()?
Hàm nào kiểm tra xem một lỗi đã bao bọc có khớp với một lỗi cụ thể không?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Go khác
Kiến thức cơ bản về Go
Cấu trúc dữ liệu Go
Interface trong Go
Cơ bản về Goroutine
Channels
Go Modules
Máy chủ HTTP
HTTP Client
Mã hóa JSON
Database/SQL
Gói context
Testing
Các mẫu Concurrency
Primitive đồng bộ hóa
Framework web Go
Thiết kế API REST
gRPC
Reflection
Quản lý bộ nhớ
Tối ưu hóa hiệu năng
Generics
Go Design Patterns
Microservices
Bảo mật và Xác thực
Docker & Containerization
Kubernetes Basics
Go Nâng cao
Phát triển CLI
Nắm vững Go cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí