OVH Cloud OVH Cloud

throw "bidule"

3 réponses
Avatar
Fabien LE LEZ
Bonjour,

J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris

try
{
throw "foo";
}
catch (XXX)
{
}

quelles sont les valeurs de "XXX" qui feront que l'exception sera
attrapée ?

Merci d'avance...



--
;-)

3 réponses

Avatar
Frederic Py
On 2005-02-06 17:02:52 +0100, Fabien LE LEZ said:

Bonjour,

J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris
try {
throw "foo";
}
catch (XXX)
{
}

quelles sont les valeurs de "XXX" qui feront que l'exception sera
attrapée ?

Merci d'avance...


A priori je dirait char * etant donné que "foo" est un char[]
--
Fred

Avatar
David
Salut,
comme "foo" est un const char*
fort probablement :

XXX = const char*
ou
XXX = ...



Bonjour,

J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris

try
{
throw "foo";
}
catch (XXX)
{
}

quelles sont les valeurs de "XXX" qui feront que l'exception sera
attrapée ?

Merci d'avance...





Avatar
Falk Tannhäuser
Fabien LE LEZ wrote:
J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris

try
{
throw "foo";
}
catch (XXX)
{
}

quelles sont les valeurs de "XXX" qui feront que l'exception sera
attrapée ?


"foo" est du type 'char const[4]' qui d'après § 15.1/3 est ajusté
en 'char const*'. L'exception ne sera donc pas attrapée par un
'catch(char*)' mais elle l'est par un 'catch(char const*)', un
'catch(void const*)' ou un 'catch(...)'.

Falk