diff options
author | Justin Clark-Casey (justincc) | 2012-10-25 02:52:20 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-10-25 02:52:20 +0100 |
commit | d9aaf51561ea7bb2ee030c648611a5281f21ec49 (patch) | |
tree | f28a621e8fbfb2d2c7ffa321cef50228bc162a06 /OpenSim/Region | |
parent | Make osNpcCreate() return UUID.Zero instead of throwing an exception if notec... (diff) | |
download | opensim-SC-d9aaf51561ea7bb2ee030c648611a5281f21ec49.zip opensim-SC-d9aaf51561ea7bb2ee030c648611a5281f21ec49.tar.gz opensim-SC-d9aaf51561ea7bb2ee030c648611a5281f21ec49.tar.bz2 opensim-SC-d9aaf51561ea7bb2ee030c648611a5281f21ec49.tar.xz |
When scripts generate expected exceptions (e.g. due to checked bad parameter) throw ScriptException instead of just a plain old exception.
This is to make it easier to distinguish these exceptions from unexpected OpenSimulator problems internally and in regression tests.
No functional changes.
Diffstat (limited to 'OpenSim/Region')
5 files changed, 52 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index 6e53951..99bf72a 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | |||
@@ -38,7 +38,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
38 | { | 38 | { |
39 | public partial class Scene | 39 | public partial class Scene |
40 | { | 40 | { |
41 | |||
42 | protected void SimChat(byte[] message, ChatTypeEnum type, int channel, Vector3 fromPos, string fromName, | 41 | protected void SimChat(byte[] message, ChatTypeEnum type, int channel, Vector3 fromPos, string fromName, |
43 | UUID fromID, UUID targetID, bool fromAgent, bool broadcast) | 42 | UUID fromID, UUID targetID, bool fromAgent, bool broadcast) |
44 | { | 43 | { |
@@ -66,6 +65,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
66 | args.From = fromName; | 65 | args.From = fromName; |
67 | args.TargetUUID = targetID; | 66 | args.TargetUUID = targetID; |
68 | 67 | ||
68 | // m_log.DebugFormat( | ||
69 | // "[SCENE]: Sending message {0} on channel {1}, type {2} from {3}, broadcast {4}", | ||
70 | // args.Message.Replace("\n", "\\n"), args.Channel, args.Type, fromName, broadcast); | ||
71 | |||
69 | if (broadcast) | 72 | if (broadcast) |
70 | EventManager.TriggerOnChatBroadcast(this, args); | 73 | EventManager.TriggerOnChatBroadcast(this, args); |
71 | else | 74 | else |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index cf801ba..dc791d3 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -10685,12 +10685,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
10685 | 10685 | ||
10686 | internal void Deprecated(string command) | 10686 | internal void Deprecated(string command) |
10687 | { | 10687 | { |
10688 | throw new Exception("Command deprecated: " + command); | 10688 | throw new ScriptException("Command deprecated: " + command); |
10689 | } | 10689 | } |
10690 | 10690 | ||
10691 | internal void LSLError(string msg) | 10691 | internal void LSLError(string msg) |
10692 | { | 10692 | { |
10693 | throw new Exception("LSL Runtime Error: " + msg); | 10693 | throw new ScriptException("LSL Runtime Error: " + msg); |
10694 | } | 10694 | } |
10695 | 10695 | ||
10696 | public delegate void AssetRequestCallback(UUID assetID, AssetBase asset); | 10696 | public delegate void AssetRequestCallback(UUID assetID, AssetBase asset); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs index 6809c09..a830a15 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs | |||
@@ -95,13 +95,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
95 | 95 | ||
96 | internal void MODError(string msg) | 96 | internal void MODError(string msg) |
97 | { | 97 | { |
98 | throw new Exception("MOD Runtime Error: " + msg); | 98 | throw new ScriptException("MOD Runtime Error: " + msg); |
99 | } | 99 | } |
100 | 100 | ||
101 | // | 101 | /// <summary> |
102 | //Dumps an error message on the debug console. | 102 | /// Dumps an error message on the debug console. |
103 | // | 103 | /// </summary> |
104 | 104 | /// <param name='message'></param> | |
105 | internal void MODShoutError(string message) | 105 | internal void MODShoutError(string message) |
106 | { | 106 | { |
107 | if (message.Length > 1023) | 107 | if (message.Length > 1023) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 804b0af..5301ccd 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -210,7 +210,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
210 | 210 | ||
211 | internal void OSSLError(string msg) | 211 | internal void OSSLError(string msg) |
212 | { | 212 | { |
213 | throw new Exception("OSSL Runtime Error: " + msg); | 213 | throw new ScriptException("OSSL Runtime Error: " + msg); |
214 | } | 214 | } |
215 | 215 | ||
216 | /// <summary> | 216 | /// <summary> |
diff --git a/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs new file mode 100644 index 0000000..ae67fc5 --- /dev/null +++ b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | |||
30 | namespace OpenSim.Region.ScriptEngine.Shared | ||
31 | { | ||
32 | public class ScriptException : Exception | ||
33 | { | ||
34 | public ScriptException() : base() {} | ||
35 | |||
36 | public ScriptException(string message) : base(message) {} | ||
37 | |||
38 | public ScriptException(string message, Exception innerException) : base(message, innerException) {} | ||
39 | } | ||
40 | } \ No newline at end of file | ||