🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
The http.Error function in Golang is part of the net/http package and is used to send an HTTP error response to the client. This function simplifies the process of responding with an error message and a corresponding HTTP status code, such as 404 (Not Found), 500 (Internal Server Error), or any other appropriate status code.
Table of Contents
- Introduction
http.ErrorFunction Syntax- Examples
- Basic Usage
- Sending a 404 Not Found Error
- Sending a 500 Internal Server Error
- Real-World Use Case
- Conclusion
Introduction
The http.Error function is a convenient way to handle error situations in a web server. It allows you to send a custom error message along with the appropriate HTTP status code to inform the client of what went wrong. This function is especially useful for handling cases like missing resources, server errors, or unauthorized access.
http.Error Function Syntax
The syntax for the http.Error function is as follows:
func Error(w http.ResponseWriter, error string, code int)
Parameters:
w: Thehttp.ResponseWriterused to write the HTTP response.error: A string containing the error message to be sent to the client.code: An integer representing the HTTP status code to be sent. Common codes include 404 (Not Found), 500 (Internal Server Error), and 403 (Forbidden).
Returns:
- The function does not return any value. It writes the error response directly to the HTTP response.
Examples
Basic Usage
This example demonstrates how to use the http.Error function to send a simple error response.
Example
package main
import (
"net/http"
)
func main() {
// Register a handler for the "/error" path
http.HandleFunc("/error", func(w http.ResponseWriter, r *http.Request) {
// Send an error response with a 400 Bad Request status code
http.Error(w, "Bad Request: Invalid Input", http.StatusBadRequest)
})
// Start the server on port 8080
http.ListenAndServe(":8080", nil)
}
Explanation:
- The code sets up a web server that listens on port 8080.
- When the
/errorpath is accessed, the server responds with a 400 Bad Request status code and a custom error message.
Sending a 404 Not Found Error
This example shows how to send a 404 Not Found error using the http.Error function.
Example
package main
import (
"net/http"
)
func main() {
// Register a handler for the "/resource" path
http.HandleFunc("/resource", func(w http.ResponseWriter, r *http.Request) {
// Simulate that the resource does not exist
http.Error(w, "Resource not found", http.StatusNotFound)
})
// Start the server on port 8080
http.ListenAndServe(":8080", nil)
}
Explanation:
- When the
/resourcepath is accessed, the server responds with a 404 Not Found status code and a custom error message indicating that the resource is not available.
Sending a 500 Internal Server Error
This example demonstrates how to send a 500 Internal Server Error using the http.Error function.
Example
package main
import (
"net/http"
)
func main() {
// Register a handler for the "/internal-error" path
http.HandleFunc("/internal-error", func(w http.ResponseWriter, r *http.Request) {
// Simulate a server error
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
})
// Start the server on port 8080
http.ListenAndServe(":8080", nil)
}
Explanation:
- When the
/internal-errorpath is accessed, the server responds with a 500 Internal Server Error status code and a message indicating that there was a problem on the server.
Real-World Use Case
Handling Unauthorized Access
In real-world applications, http.Error can be used to handle unauthorized access by sending a 403 Forbidden response when a user tries to access a resource they are not allowed to.
Example: Handling Unauthorized Access
package main
import (
"net/http"
)
func main() {
// Register a handler for the "/admin" path
http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) {
// Simulate unauthorized access
http.Error(w, "Forbidden: You do not have permission to access this resource", http.StatusForbidden)
})
// Start the server on port 8080
http.ListenAndServe(":8080", nil)
}
Explanation:
- When the
/adminpath is accessed by an unauthorized user, the server responds with a 403 Forbidden status code and a message indicating that access is not allowed.
Conclusion
The http.Error function in Go is used for handling errors in web applications. By sending an appropriate HTTP status code and error message, you can inform clients of what went wrong and how to address the issue. Whether you're handling missing resources, server errors, or unauthorized access, http.Error provides a straightforward way to manage error responses in your web server.
Comments
Post a Comment
Leave Comment