Avatar billede atoft Nybegynder
07. august 2002 - 09:50 Der er 10 kommentarer og
1 løsning

try .... catch fanger ikke throw

Hej

Jeg har problemer med at fange en excepetion i explorer 5.5 sp2

Jeg har to sider

SIDE 1: frame.html
------------------

<HTML>
<HEAD>
<script language="javascript">
function obj() {
    this.a = "abc";
}

obj.prototype.err = function () {
    throw "error thrown";
}
</script>

</HEAD>

<frameset rows="268,*"  border="1" framespacing="1">
  <frame name="testFrame" src="test.html">
    <frame name="empty" src="about:blank">
</frameset>

</HTML>

SIDE 2: test.html
-----------------
<html>
<head>
<script language="javascript">

function runIt() {
    try {
        var o = new top.obj();
        o.err();   
    } catch (ex) {
        alert(ex);
    }
}
window.onload = runit;
</script>
</head>

<body>
</body>
</html>

Flytter jeg obj objectet ind på test.html virker det fint. Men det er ikke en brugbar løsning, obj skal bruges som en cache object.

Kan I knække den!!! Kom så......
Avatar billede jakoba Nybegynder
07. august 2002 - 10:49 #1
naturligvis kan vi det :-)).
du skal kaste et objekt, ikke blot en streng.
se: http://hjem.get2net.dk/Jakob.Aggernaes/temp/throwscope/
Avatar billede jakoba Nybegynder
07. august 2002 - 11:21 #2
Næe, det virker jo udemærket uanset hvad der bliver kastet.
Weird.
Avatar billede jakoba Nybegynder
07. august 2002 - 11:49 #3
buh. stavefjel. der skulle blot rettes i linien
    window.onload = runIt;    // STORT 'I' i runIt
Avatar billede atoft Nybegynder
07. august 2002 - 14:22 #4
Jeg har prøvet dit link. Men jeg ser aldrig meddelelsen

"en exception er fanget"

Jeg får "kun" meddelelsen fra browseren om, at en

Undtagelse opstået og ikke fanget

Med andre ord, jeg når aldrig ind i catch delen på side 2

Jeg kører som sagt ie 5.5, men jeg får samme fejl på ie 6.0
Avatar billede jakoba Nybegynder
07. august 2002 - 16:12 #5
Jeg har lave en fjerde test. når der skal throw'es kalder den en lille funktion i rammen der udfører en throw.

Hvis den virker for dig ved vi om ikke andet at det er det med forskellige rammer der halter. Og måske det endda er en løsning du kan bruge :).

mvh JakobA
Avatar billede atoft Nybegynder
07. august 2002 - 20:58 #6
Hej Jakob.

Desværre, jeg når helt til at se:

alert( "remoteThrow( msg ) kaster nu en streng" );

men den fejlen igen ved throw'en med

Undtagelse opstået men ikke fanget.

Jeg kan godt lide din iver. Jeg havde prøvet noget tilsvarende, inden jeg kastede spøgsmålet ud, jeg havde blot remoteThrow i side 1.

Jeg er imellem tiden faldet over følgende i en newsgroup.

"I figured it out.  I had a jscript object I was sharing between frames via
top.  Whenever an exception got thrown from within it, it wouldn't get
caught.  So I guess the moral of the story is don't try to do crazy stuff
with top."

Men der må for f..... være en workaround.

Jeg har også prøvet at lave en function i side 1, som laver den nye instans og returnere den, men det virker heller ikke. :-(

Jeg tror det er første gang jeg hører om noget der virker i ns6 og 7 og ikke i ie.
Avatar billede jakoba Nybegynder
07. august 2002 - 21:00 #7
vist ihvertfald mht opera og IE. selv opera4 kan.
Avatar billede =maddog= Nybegynder
08. august 2002 - 03:14 #8
ting der virker i NS6+ og burde virke i IE:
selectors i CSS (f.x.):
input[type="text"]
:focus (uha den er savnet!)
display i CSS (f.x.):
display:table;
DOM context istedet for innerHTML i java script:
createContextualFragment(HTML)
og meget meget mere.
Grunden til at man ikke ser alle NS's fordele er fordi man konsekvent udvikler til IE.
Avatar billede jakoba Nybegynder
08. august 2002 - 03:16 #9
men ie har de den der <marque kommando :-))
Avatar billede =maddog= Nybegynder
08. august 2002 - 03:21 #10
<marquee> er (af mig) dømt som det dummeste tag nogensinde med <blink> på en fin fin andenplads. Gad vide om der er en officiel afstemning af sådan noget?
Avatar billede atoft Nybegynder
16. august 2005 - 13:10 #11
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester