modelling volatility of stock returns

i have a time series of stock return, for which i would like to estimate conditional volatility by a garch model.
My aim is not to correct an ARMA model, but only to estimate conditional variance. I used in matlab, estimate garch offset for p=1 and q=1.
For some variables with outliers i have inaccurate estimations. Should i change p&q orders or use other specifications?
Which of those models deal better with presence of shocks : ARCH GARCH EGARCH GJR?