Ո՞րն է տարբերությունը նախազգուշացման և սխալի հաղորդագրությունների միջև համակարգչային ծրագրավորման մեջ:


պատասխանել 1:

Սխալային հաղորդագրությունը (կազմողից) ցույց է տալիս, որ ծրագրի տեքստի հետ կապված խնդիրն այնքան լուրջ է, որ կանխում է կոդերի ստեղծումը, որը կարող է ծրագրավորողի կողմից նախատեսված լինել:

Նախազգուշացման հաղորդագրությունը (կազմողից) ցույց է տալիս վատ պրակտիկայի կամ անտեսման խնդիրը, որն այնքան էլ լուրջ չէ, որպեսզի կանխի կոդերի առաջացումը, բայց կարող է ենթադրել, որ ծածկագիրը չի անում այն, ինչ ծրագրավորողը մտադրվել է:

Իմ կազմողի մեջ դրոշ դրեցի ՝ բոլոր նախազգուշացումները սխալ հաղորդագրությունների վերածելու համար, որպեսզի կազմողը չփորձի ստեղծել իրագործելի պատկեր, որը կարծում է, որ խելագարված է:


պատասխանել 2:

Ենթադրում եմ, որ դուք դրա մասին եք խոսում կազմման ընթացքում:

Եթե ​​սխալ եք թույլ տվել, սխալ եք օգտագործել լեզուն, և կազմողը չի կարող հասկանալ, թե ինչ եք գրել և չի փորձի օգտագործել ձեր խնդրածը: Դա կանխում է GIGO- ն:

Գուցե դուք սխալ եք գործածել լեզուն նախազգուշացումներում: Կազմիչը կարող է օգտագործել ծածկագիրը, ինչպես գրված է, բայց դա կարող է որոշել, որ ձեր կոդի մեջ ներդրել եք խոցելիություն, և դա կարող է ոչ թե վարվել այնպես, ինչպես դուք եք նախատեսել, այլ վարվել այնպես, ինչպես գրված է: Կարող եք օգտագործել «կոկիկ հնարք», բայց կոկիկ հնարքները հաճախ ձեզ հանգեցնում են այնտեղ, որտեղ ցավում է:

Դուք հաճախ կարող եք գտնել կոմպիլյերների տարբերակ, որն օգտագործվում է թողարկման շինություններում, որտեղ նախազգուշացումները վերաբերվում են որպես սխալների և պետք է ամրագրվեն `նախքան կոդը ազատելը: Կատարման նախազգուշացումները կարող են հանդուրժվել կարգաբերման կարգի և վաղ զարգացման ընթացքում, այնպես որ դուք կարող եք նույնքան սահմանափակող չլինել:

Օրինակ ՝ նախադասությունը

Նավթի տոստի թավա

ոչինչ չի նշանակում և դառնում է ոչինչ և սխալ է դառնում, նախադասությունը նախադասություն չէ: սակայն

յուղը լցնել տոստերի մեջ

Զգուշացում է առաջացնում: Հրահանգները պարզ և պարզ են և կարող են հետևել: Այնուամենայնիվ, քանի որ մենք գիտենք, որ նավթը պետք է լցվի բեռնարկղի մեջ (կամ գուցե արտահոսք), իսկ տոստերը բեռնարկղեր չեն (կամ ջրահեռացման), մենք նախազգուշացում կտայինք: Եթե ​​ասում եք, որ ամեն դեպքում պետք է անենք դա, գործարկեք ծրագիրը, մենք անպարկեշտորեն յուղ ենք լցնելու ձեր տոստերի մեջ: Այժմ դուք ունեք խառնաշփոթ հաշվիչ և տոստ, որը չպետք է օգտագործեք: Արդյունքները այն չեն, ինչ դուք սպասում եք, բայց ակցիան հնարավոր էր:

Իհարկե, որոշ լեզուների կազմողներ, որոնք սխալ են տեսնում և սխալ են թույլ տալիս, նախազգուշացում չունեն:


պատասխանել 3:

Այլ պատասխանները վերաբերում են կազմված լեզուներին, բայց սխալների և նախազգուշացումների միջև տարբերությունը դիտվում է այս տիրույթից դուրս: Ընդհանուր առմամբ, սխալը ծրագրի հետ կապված խնդիր է, որն այնքան էական է, որ ծրագիրը չպետք է շարունակվի, մինչդեռ նախազգուշացումը չի կարող վնասակար լինել, բայց դուք հավանաբար կցանկանաք ուշադրություն դարձնել: Կոդի մշակման ժամանակ խորհուրդ է տրվում օգտագործել «Ոչ նախազգուշացումներ» քաղաքականությունը: Դրանք շփոթեցնում են, և կոդային բազայի յուրաքանչյուր նոր մասնակից պետք է հասկանա, թե ինչու է նախազգուշացումը: