aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-10-25 02:52:20 +0100
committerJustin Clark-Casey (justincc)2012-10-25 02:52:20 +0100
commitd9aaf51561ea7bb2ee030c648611a5281f21ec49 (patch)
treef28a621e8fbfb2d2c7ffa321cef50228bc162a06 /OpenSim/Region
parentMake osNpcCreate() return UUID.Zero instead of throwing an exception if notec... (diff)
downloadopensim-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')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs5
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs10
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/ScriptException.cs40
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
28using System;
29
30namespace 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