032 TIF

032 TIF



linii i nie obchodzi nas, że jedna z nich może się już nie zmieścić, to wcale nie musimy sprawdzać kodu zwrotnego. W razie jakichś wątpliwości lepiej jednak zachować ostrożność.

Załóżmy, że przydziały pamięci nie powiodą się i że chcemy ustrzec nasz program przed takim wypadkiem. Dla zwiększenia wydajności warto podzielić kod na funkcje wymagające sprawdzenia argumentów oraz funkcje niewymagające takiego sprawdzania. Ponadto zawsze należy uzupełnić swoje założenia asercjami, tak na wszelki wypadek — nawet jeśli uważamy, że nie musimy sprawdzać parametrów.

Przykład: BF::FSetSize() w pliku bits.cpp

Uniemożliwianie dzielenia przez 0

unikanie awarii

Przed

nWyn = nLtcz / nMian;

Po

if (nMian)

nWyn = nLicz i nMian; else

//Podać tu jakiś wynik domyślny, nWyn = 0;

Przy dzieleniu przez zero zostaje wygenerowany błąd wykonania lub wyjątek. Zwykle ten błąd jest przekazywany do użytkownika tuż przed przerwaniem pracy programu. Przy każdym dzieleniu przez zmienną lub wartość obliczaną należy sprawdzać, czy nie jest to zero, aby uniknąć sytuacji, w której mianownik jest zerem.

Pojawienie się dzielenia przez zero może również wskazywać na złe wykonanie projektu. To również należy sprawdzić. Miejscowe poprawienie błędu mogłoby ukryć znacznie głębszy problem. Najpierw przekonajmy się, czy mianownik rzeczywiście mógł być zerem. (Czasem trzeba przy tym solidnie pogłówkować.) Dopiero wówczas, gdy nie spodziewamy się dzielenia przez zero, musimy dokładnie przeanalizować projekt. To może wymagać znacznie więcej pracy. Jeśli jednak mianownik po prostu może mieć wartość zerową, to wystarczy zabezpieczyć się przed tą sytuacją, tak jak w tym przykładzie.


Wyszukiwarka

Podobne podstrony:
80 tif 80 ŚWIĘTA 1 OBCHODY arabski, że u części Słowian wschodnich posądzano co 20 lat wszystkie .st
skanuj0072 (28) 440 Część 111,2: Myśl o sztuce w Italii Quattrocenta Czy dlatego, że jedna podoba ci
2)    czytanie w myślach- jest związane z przekonaniem, że jedna osoba może domy
UCZĘ SIĘ Z KUBUSIEM 3 4 LATKA (12)(1) Wolniej, Króliku! Królik wiezie tak dużo marchewek i tak szybk
273 (31) zosia: Mój mąż mówi mi bardzo często, że mnie kocha. Przyzwyczaiłam się do tego. Jest to mi
Odchylenie względne sposób, że jedna z nich jest wielk podstawową a druga kształtuje się pod
Przedstawicielstwo ustawowe: Polega na tym, ze jedna osoba może działać w imieniu i na rzecz innej o
opracowane w tym celu metody obliczeniowe. Jedną z nich jest, poznana już przez nas w wersji dla obw
CAM01746 * taka relacja między jednostkami, w której istnieje prawdopodobieństwo, że jedna z ni
CIMG1413 Antybiotykoterapia racjonalna Wyniki analiz wskazują, że jedną z przyczyn pogarszającej się
img037 W wieku lat siedmiu wyraźnie poczułam, że w moim życiu zdarzyło się już wszystko. Chcąc upewn
page0230 — 216 — kowoż już pod koniec pierwszego roku są dość silne tak, że dziecko może się już na
IMG 9 spojlowanie programu robinsonowie :c; program może się już nie pozbierać. Jak wykrzyknął jeden

więcej podobnych podstron