Sobes.tech
Junior — Middle

Чӣ фарқият дорад байни хатое, ки дар вақти иҷрои барнома рух медиҳад, ва хатое, ки дар вақти компилятсия ёфт мешавад?

sobes.tech AI

Ҷавоб аз AI

Хатои, ки дар вақти компиляция (хати компиляция) пайдо мешаванд, дар марҳилаи компиляции барнома рух медиҳанд. Инҳо хатогиҳои синтаксисӣ, хатогиҳои намудҳо, набудани истинодҳои зарурӣ ва дигар мушкилоте мебошанд, ки имкон намедиҳанд, ки коди иҷрошаванда тавлид шавад.

Хатои дар вақти иҷро (runtime error) аллакай ҳангоми оғоз кардани барнома, вақте ки компиляция бо муваффақият гузашт, рух медиҳад. Инҳо метавонанд истисноҳо, тақсим ба нул, дастрасӣ ба ҳадди масив, хатогиҳои дастрасӣ ба хотира ва дигар ҳолатҳое бошанд, ки танҳо дар вақти иҷрои барнома пайдо мешаванд.

Масалан:

// Хати компиляция:
int x = "сатр"; // намешавад сатрро ба тағйирёбандаи типи int таъин кард

// Хати иҷро:
int[] arr = new int[3];
int y = arr[5]; // IndexOutOfRangeException дар вақти иҷро

Бинобар ин, хатогиҳои компиляция пешгирӣ мекунанд, ки барнома оғоз шавад, дар ҳоле ки хатогиҳои вақти иҷро танҳо дар вақти коркарди он пайдо мешаванд.