2015-06-25 3 views
0

Я не совсем понимаю смысл/назначение BufferOverflowException(); В моем курсе мы используем его для кодирования очереди и при добавлении элементов в очередь мы используем BufferOverflowException.Какова цель BufferOverflowException

В соответствии с docs.oracle это означает «Неконтролируемое исключение, возникающее при достижении относительной операции сложения до предела целевого буфера». и все же я не понимаю смысла этого.

public class FIFOQueue<T>{ 
T[] data; 
int first=0; 
int last=0; 
boolean full = false; 

public FIFOQueue(int capacity){ 
    data = (T[]) new Object[capacity]; 
} 

public void add(T element){ 
    if (full) 
     throw new BufferOverflowException(); 
    data[last] = element; 
    last++; 
    if (last == data.length) 
     last = 0; 
    if (last == first) 
     full = true; 
} 

ответ

1

Переполнение буфера означает, что слишком много данных дается приложению.

Пример: Скопируйте текст книги в «Новое контактное имя» на телефоне.

Как правило, если не обрабатываются хорошо, это приводит к chrash ...
Что еще более важно, это может быть недостаток безопасности!

Дополнительные данные могут храниться вне программ, указанных в памяти, а дополнительные данные могут быть исполняемым кодом.

Итак, рекомендуется всегда проверять ввод пользователя! :)

Смежные вопросы