Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Insider News
  4. C# 6 Exception Filters and How they are much more than Syntactic Sugar

C# 6 Exception Filters and How they are much more than Syntactic Sugar

Scheduled Pinned Locked Moved The Insider News
csharpdatabasecomquestion
16 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    Kent Sharkey
    wrote on last edited by
    #1

    Volatile Read[^]:

    Exception Filters are a new feature in C# 6 which allows you to specify conditions along with a catch block. The catch block is only executed if the condition satisfies.

    catch(Exception ex) if (ex.Source="C#" && ex.Message.Contains("v.Next"))

    Sander RosselS T 2 Replies Last reply
    0
    • K Kent Sharkey

      Volatile Read[^]:

      Exception Filters are a new feature in C# 6 which allows you to specify conditions along with a catch block. The catch block is only executed if the condition satisfies.

      catch(Exception ex) if (ex.Source="C#" && ex.Message.Contains("v.Next"))

      Sander RosselS Offline
      Sander RosselS Offline
      Sander Rossel
      wrote on last edited by
      #2

      Yaaaawn... We've had this for years in VB.NET! About time C# caught up! :D That's right VB haters! Better show some respect! For the record, I love C#, but VB.NET was my first love and I kind of have a weakness for it... And VB.NET doesn't deserve the hate it's getting (ok, some of it) :D

      My blog[^]

      public class SanderRossel : Lazy<Person>
      {
      public void DoWork()
      {
      throw new NotSupportedException();
      }
      }

      T 1 Reply Last reply
      0
      • Sander RosselS Sander Rossel

        Yaaaawn... We've had this for years in VB.NET! About time C# caught up! :D That's right VB haters! Better show some respect! For the record, I love C#, but VB.NET was my first love and I kind of have a weakness for it... And VB.NET doesn't deserve the hate it's getting (ok, some of it) :D

        My blog[^]

        public class SanderRossel : Lazy<Person>
        {
        public void DoWork()
        {
        throw new NotSupportedException();
        }
        }

        T Offline
        T Offline
        TheGreatAndPowerfulOz
        wrote on last edited by
        #3

        I notice your signature contains C# code, not VB. BWAHAHAHAHA!!

        If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
        You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering.-Wernher von Braun
        Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein

        Sander RosselS 1 Reply Last reply
        0
        • T TheGreatAndPowerfulOz

          I notice your signature contains C# code, not VB. BWAHAHAHAHA!!

          If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
          You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering.-Wernher von Braun
          Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein

          Sander RosselS Offline
          Sander RosselS Offline
          Sander Rossel
          wrote on last edited by
          #4

          What do you mean? That's VB alright! :confused: Your brain must've blocked out the VB and translated it to C#!

          My blog[^]

          public class SanderRossel : Lazy<Person>
          {
          public void DoWork()
          {
          throw new NotSupportedException();
          }
          }

          T 1 Reply Last reply
          0
          • K Kent Sharkey

            Volatile Read[^]:

            Exception Filters are a new feature in C# 6 which allows you to specify conditions along with a catch block. The catch block is only executed if the condition satisfies.

            catch(Exception ex) if (ex.Source="C#" && ex.Message.Contains("v.Next"))

            T Offline
            T Offline
            tgrt
            wrote on last edited by
            #5

            I have a question, but I didn't want to sign-up at the site to ask it. I suppose this is a programming question, so I won't delve into it other than point out a flaw in the article. In the example he specifies a use case of logging without unwinding the stack. The premise sounds good except that at the point he logs he has no context for the exception. The most he can log is that there was an exception and maybe pass in some state information on a method overload. The exception object hasn't been created yet. I could be missing something. His original does the same thing -- there is no context to the exception.

            Richard DeemingR D 2 Replies Last reply
            0
            • Sander RosselS Sander Rossel

              What do you mean? That's VB alright! :confused: Your brain must've blocked out the VB and translated it to C#!

              My blog[^]

              public class SanderRossel : Lazy<Person>
              {
              public void DoWork()
              {
              throw new NotSupportedException();
              }
              }

              T Offline
              T Offline
              TheGreatAndPowerfulOz
              wrote on last edited by
              #6

              If that's VB in your signature then I'm a monkey's uncle. :laugh: :laugh: :laugh: :laugh: :laugh:

              If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
              You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering.-Wernher von Braun
              Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein

              Sander RosselS 1 Reply Last reply
              0
              • T TheGreatAndPowerfulOz

                If that's VB in your signature then I'm a monkey's uncle. :laugh: :laugh: :laugh: :laugh: :laugh:

                If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
                You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering.-Wernher von Braun
                Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein

                Sander RosselS Offline
                Sander RosselS Offline
                Sander Rossel
                wrote on last edited by
                #7

                You're right, it's actually F# :sigh:

                My blog[^]

                public class SanderRossel : Lazy<Person>
                {
                public void DoWork()
                {
                throw new NotSupportedException();
                }
                }

                T 1 Reply Last reply
                0
                • Sander RosselS Sander Rossel

                  You're right, it's actually F# :sigh:

                  My blog[^]

                  public class SanderRossel : Lazy<Person>
                  {
                  public void DoWork()
                  {
                  throw new NotSupportedException();
                  }
                  }

                  T Offline
                  T Offline
                  TheGreatAndPowerfulOz
                  wrote on last edited by
                  #8

                  That's not F# either. :rolleyes:

                  If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
                  You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering.-Wernher von Braun
                  Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein

                  Sander RosselS 1 Reply Last reply
                  0
                  • T TheGreatAndPowerfulOz

                    That's not F# either. :rolleyes:

                    If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
                    You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering.-Wernher von Braun
                    Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein

                    Sander RosselS Offline
                    Sander RosselS Offline
                    Sander Rossel
                    wrote on last edited by
                    #9

                    Assembler?

                    My blog[^]

                    public class SanderRossel : Lazy<Person>
                    {
                    public void DoWork()
                    {
                    throw new NotSupportedException();
                    }
                    }

                    D 1 Reply Last reply
                    0
                    • T tgrt

                      I have a question, but I didn't want to sign-up at the site to ask it. I suppose this is a programming question, so I won't delve into it other than point out a flaw in the article. In the example he specifies a use case of logging without unwinding the stack. The premise sounds good except that at the point he logs he has no context for the exception. The most he can log is that there was an exception and maybe pass in some state information on a method overload. The exception object hasn't been created yet. I could be missing something. His original does the same thing -- there is no context to the exception.

                      Richard DeemingR Offline
                      Richard DeemingR Offline
                      Richard Deeming
                      wrote on last edited by
                      #10

                      The exception object has been created - it's just that the examples on that blog post don't show it. You could easily do:

                      try
                      {
                      ...
                      }
                      catch (SomeException ex) if (Log(ex))
                      {
                      }

                      This blog post[^] has a better example.


                      "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                      "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                      1 Reply Last reply
                      0
                      • Sander RosselS Sander Rossel

                        Assembler?

                        My blog[^]

                        public class SanderRossel : Lazy<Person>
                        {
                        public void DoWork()
                        {
                        throw new NotSupportedException();
                        }
                        }

                        D Offline
                        D Offline
                        Dave Kreskowiak
                        wrote on last edited by
                        #11

                        Keep guessing. When you get to C#, stop.

                        A guide to posting questions on CodeProject

                        Click this: Asking questions is a skill. Seriously, do it.
                        Dave Kreskowiak

                        Sander RosselS 1 Reply Last reply
                        0
                        • T tgrt

                          I have a question, but I didn't want to sign-up at the site to ask it. I suppose this is a programming question, so I won't delve into it other than point out a flaw in the article. In the example he specifies a use case of logging without unwinding the stack. The premise sounds good except that at the point he logs he has no context for the exception. The most he can log is that there was an exception and maybe pass in some state information on a method overload. The exception object hasn't been created yet. I could be missing something. His original does the same thing -- there is no context to the exception.

                          D Offline
                          D Offline
                          Dave Kreskowiak
                          wrote on last edited by
                          #12

                          Ummm...wrong. If the Exception hasn't been created yet, how is the catch block going to know about it? The Exception HAS been created by the time the catch block and the filters start executing. Ever set a breakpoint on a catch in VS? Without the catch executing, you get a little tag you can click and see the, wait for it, Exception object!

                          A guide to posting questions on CodeProject

                          Click this: Asking questions is a skill. Seriously, do it.
                          Dave Kreskowiak

                          1 Reply Last reply
                          0
                          • D Dave Kreskowiak

                            Keep guessing. When you get to C#, stop.

                            A guide to posting questions on CodeProject

                            Click this: Asking questions is a skill. Seriously, do it.
                            Dave Kreskowiak

                            Sander RosselS Offline
                            Sander RosselS Offline
                            Sander Rossel
                            wrote on last edited by
                            #13

                            You really want me to continue? :laugh: To tell you the truth I actually know what language I wrote my own signature in. I'm just messing with you guys :D

                            My blog[^]

                            public class SanderRossel : Lazy<Person>
                            {
                            public void DoWork()
                            {
                            throw new NotSupportedException();
                            }
                            }

                            D 1 Reply Last reply
                            0
                            • Sander RosselS Sander Rossel

                              You really want me to continue? :laugh: To tell you the truth I actually know what language I wrote my own signature in. I'm just messing with you guys :D

                              My blog[^]

                              public class SanderRossel : Lazy<Person>
                              {
                              public void DoWork()
                              {
                              throw new NotSupportedException();
                              }
                              }

                              D Offline
                              D Offline
                              Dave Kreskowiak
                              wrote on last edited by
                              #14

                              Dude, with the tpye and quality of a lot of the questions that show up around here, I wouldn't doubt someone doesn't have a clue about what they put in their signature.

                              A guide to posting questions on CodeProject

                              Click this: Asking questions is a skill. Seriously, do it.
                              Dave Kreskowiak

                              Sander RosselS 1 Reply Last reply
                              0
                              • D Dave Kreskowiak

                                Dude, with the tpye and quality of a lot of the questions that show up around here, I wouldn't doubt someone doesn't have a clue about what they put in their signature.

                                A guide to posting questions on CodeProject

                                Click this: Asking questions is a skill. Seriously, do it.
                                Dave Kreskowiak

                                Sander RosselS Offline
                                Sander RosselS Offline
                                Sander Rossel
                                wrote on last edited by
                                #15

                                :laugh: I sure hope you hold me in a little higher esteem :) ... Right? :~

                                My blog[^]

                                public class SanderRossel : Lazy<Person>
                                {
                                public void DoWork()
                                {
                                throw new NotSupportedException();
                                }
                                }

                                D 1 Reply Last reply
                                0
                                • Sander RosselS Sander Rossel

                                  :laugh: I sure hope you hold me in a little higher esteem :) ... Right? :~

                                  My blog[^]

                                  public class SanderRossel : Lazy<Person>
                                  {
                                  public void DoWork()
                                  {
                                  throw new NotSupportedException();
                                  }
                                  }

                                  D Offline
                                  D Offline
                                  Dave Kreskowiak
                                  wrote on last edited by
                                  #16

                                  Psshhhhht. Yeah, right. :-D

                                  A guide to posting questions on CodeProject

                                  Click this: Asking questions is a skill. Seriously, do it.
                                  Dave Kreskowiak

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • World
                                  • Users
                                  • Groups