without try .. catch, an arror message is inevitably displaying if COM Object doesn't exist ... the following code doesn't display any error message :
try {
$ie = New-Object -ComObject InternetExplorer.Application
}
catch {
$ie = $null
}
# check and continuation
if (!$ie) {
...
}