001    // License: GPL. Copyright 2007 by Immanuel Scholz and others
002    package org.openstreetmap.josm.plugins;
003    
004    import static org.openstreetmap.josm.tools.I18n.tr;
005    
006    /**
007     * Exception that wraps any exception thrown by plugins. It is used in the JOSM main system
008     * and there is no particular reason to use this within the plugin itself (although there
009     * is also no reason against this.. ;)
010     *
011     * @author Immanuel.Scholz
012     */
013    public class PluginException extends Exception {
014        public final PluginProxy plugin;
015        public final String name;
016    
017        public PluginException(PluginProxy plugin, String name, Throwable cause) {
018            super(tr("An error occurred in plugin {0}", name), cause);
019            this.plugin = plugin;
020            this.name = name;
021        }
022    
023        public PluginException(String name, String message) {
024            super(message);
025            this.plugin = null;
026            this.name = name;
027        }
028    
029        public PluginException(String name, Throwable cause) {
030            super(tr("An error occurred in plugin {0}", name), cause);
031            this.plugin = null;
032            this.name = name;
033        }
034    }