31. tháng 3 2025
Gần đây, một người bạn của tôi gặp phải một vấn đề nhỏ khi nâng cấp Spring Boot lên phiên bản 2.x. Mặc dù có thể tìm thấy thông tin liên quan trong các thay đổi nâng cấp, nhưng để hiểu rõ hơn, chúng ta hãy cùng phân tích cách mã nguồn xử lý lỗi này.
Lỗi xảy ra trong đoạn mã sau:
1private void checkLimit() throws IOException {
2 if (count > sizeMax) {
3 raiseError(sizeMax, count);
4 }
5}
Trong đó phương thức raiseError
là phương thức trừu tượng được định nghĩa như sau:
1protected abstract void raiseError(long pSizeMax, long pCount) throws IOException;
Cụ thể hơn, bóng đá anh thể thao ngoại hạng anh phần thực hiện nằm ở:
1public FileItemStreamImpl(FileItemIteratorImpl pFileItemIterator, String pName,
2String pFieldName, String pContentType, boolean pFormField, long pContentLength)
3throws FileUploadException, IOException {
4 // ...
5 if (fileSizeMax != -1L && pContentLength != -1L && pContentLength > fileSizeMax) {
6 FileSizeLimitExceededException e = new FileSizeLimitExceededException(
7 String.format("The field %s exceeds its maximum permitted size of %s bytes.",
8 this.fieldName, fileSizeMax), pContentLength, fileSizeMax);
9 throw new FileUploadIOException(e);
10 }
11 // ...
12}
Từ đoạn mã trên, chúng ta có thể thấy rằng khi kích thước tập tin vượt quá giới hạn cho phép (fileSizeMax
), một ngoại lệ sẽ được ném ra.