error bei com Funktionen abfangen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • error bei com Funktionen abfangen

    Hallo,

    habe ein Probelm mit dem Abfangen eines errors bei der Com Funktion
    (Um einen Fehler zu provozieren wurde die Datei excel.exe für Zugriffe gesperrt.)

    Ich möchte gerne das der Fehler bei folgendem Code mit dem Text in der die() Funktion abgefangen werden kann:

    PHP-Code:
    $excel = new COM("excel.application"); 
    Aber weder
    PHP-Code:
    $excel = new COM("excel.application") or die("Geht nit"); 
    noch
    PHP-Code:
    $excel = @new COM("excel.application") or die("Geht nit"); 
    noch
    PHP-Code:
    if(!$excel)
       {
        die(
    "Geht nit");
       } 
    funktionieren.

    Setzte ich das @ Zeichen kommt gar keine Fehlermeldung. Auch nicht die von die().
    Lasse ich es hingegen weg, dann kommt folgende:

    Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `excel.application': Access is denied. ' in ....
    Jedoch kommt wieder nicht die von die().

    Kann mir jemand helfen?
    Zuletzt geändert von galaxy2; 19.01.2006, 08:16.

  • #2
    Vielleicht klappt es, wenn du Fehlermeldungen unterdrückst und dann einfach mit is_object() abfragst, ob nun ein Objekt instanziiert wurde, oder nicht?

    Sowas hier:

    PHP-Code:
    $excel = @new COM("excel.application");

    if (!
    is_object($excel)) {
        die(
    'Error!');

    Gruß,
    Flo.

    Kommentar


    • #3
      Leider funktioniert das mit dem is_object() auch nicht.

      Das Skript bleibt immer an der Stelle stehen, wo das com Objekt nicht gebildet werden kann. Der ganze nachfolgende Code wird einfach nicht ausgeführt. Somit kommt er nicht zu dem Punkt: mit dem is_object

      PHP-Code:
      $excel = @new COM("excel.application"); 
      kann er das com Object nicht bilden ist genau hier schluss. Der nun folgende Code wird ignoriert (anscheinend nicht mehr bearbeitet).
      PHP-Code:
      if (!is_object($excel)) {
          die(
      'Error!');

      Kann mir jemand helfen?

      Kommentar


      • #4
        Dann bleibt dir keine andere Möglichkeit als die Existenz (und wahrscheinlich auch die berechtigung die Applikation zu öffnen) der Applikation festzustellen und daraufhin ein Objekt zu erstellen :/

        Müsste es doch in COM geben, oder?

        Gruß,
        Flo.

        Kommentar


        • #5
          Für alle die es interesssiert. Bin im doch noch fündig geworden:

          PHP-Code:
          try {
                 
          $excel = new COM("excel.application");
               }     
                catch (
          Exception $e)
                                               {
                                                 die(
          "Geht nit");
                                               } 
          Danke füR die Hilfe

          Kommentar


          • #6
            Ja, hatte mir schon sowas gedacht... Habe mich noch nicht wirklich mit try/catch und solche Sachen beschäftigt. Aber gut zu wissen, dass dadurch der Scriptablauf nicht einfach unterbrochen wird!

            Gruß,
            Flo.

            Kommentar

            Lädt...
            X